次のようなリストがあるとします。
mylist = ["a","b","c","d"]
値をそのインデックスとともに印刷するには、enumerate
次のようなPythonの関数を使用できます。
>>> for i,j in enumerate(mylist):
... print i,j
...
0 a
1 b
2 c
3 d
>>>
今、それを内部で使用しようとすると、list comprehension
このエラーが発生します
>>> [i,j for i,j in enumerate(mylist)]
File "<stdin>", line 1
[i,j for i,j in enumerate(mylist)]
^
SyntaxError: invalid syntax
そこで質問ですが、リスト内包表記内で enumerate を使用する正しい方法は何ですか?
ベストアンサー1
これを試して:
[(i, j) for i, j in enumerate(mylist)]
リスト内包が機能するには、タプルの中に入れる必要がありますi,j
。あるいは、enumerate()
すでにタプルを返す場合は、最初に展開せずに直接返すことができます。
[pair for pair in enumerate(mylist)]
どちらの場合でも、返される結果は予想どおりです。
> [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]