9

何千もの要素のリストをスライスするための効率的な方法とコード保存を知りたい

例:

b = ["a","b","c","d","e","f","g","h"] 
index = [1,3,6,7] 

私は次のような結果を望みます:

c = ["b","d","g","h"] 
4

1 に答える 1

17

リストでこれを行う最も直接的な方法は、リスト内包表記を使用することです。

c = [b[i] for i in index]

ただし、データがどのように見えるか、およびデータで他に何をする必要があるかに応じて、numpy配列を使用できます。この場合は次のようになります。

c = b[index]

必要な処理を実行し、大きなスライスの潜在的なメモリオーバーヘッドを回避します-numpy配列はリストよりも効率的に格納され、スライスは部分的なコピーを作成するのではなく、配列のビューを取得します。

于 2012-10-07T11:45:18.493 に答える