3

別のリストのインデックスから特定の出力を含むリストを取得しようとしています。たとえば、次のようになります。

L = [(0, 1, 2, 3, 4, 5), (6, 7, 8, 9, 10,...etc), (...etc)]
multiple_index = [entry[0, 3, 4] for entry in L] 
#----> I know this specific code is wrong

上記のコードが出力できれば幸いです:

[(0, 3, 4), (6, 9, 10), (...etc)]

メインリストの各インデックスの個々のサブインデックスを、可能な場合は、示されているようにグループ化する必要があります。これを適切に実行するためにどのコードを使用できるか疑問に思っています。ありがとうございます。

EDIT:また、行としてきれいに表示するようにフォーマットするにはどうすればよいですか。.writelinesと別の出力行を使用してテキストファイルに出力しています。ありがとうございます!

4

7 に答える 7

9

使用operator.itemgetter():

from operator import itemgetter

multiple_index = map(itemgetter(0, 3, 4), L)

またはリスト内包表記で:

multiple_index = [itemgetter(0, 3, 4)(i) for i in L]
于 2013-06-21T19:44:13.667 に答える
3

1 つのオプションを次に示します。

L = [(0, 1, 2, 3, 4, 5), (6, 7, 8, 9, 10, 11), (11, 12, 13, 14, 15, 16)]
multiple_index = [(entry[0], entry[3], entry[4]) for entry in L] 

または使用operator.itemgetter()

from operator import itemgetter
indices = itemgetter(0, 3, 4)
multiple_index = [indices(entry) for entry in L] 
于 2013-06-21T19:43:55.153 に答える
2

これに興味がありますか?

L = [(0, 1, 2, 3, 4, 5), (6, 7, 8, 9, 10,...etc), (...etc)]
multiple_index = [(entry[0], entry[3], entry[4]) for entry in L] 
#----> I know this specific code is wrong
于 2013-06-21T19:44:21.657 に答える