リスト内包表記内でenumerateを使用するPython 質問する

リスト内包表記内でenumerateを使用するPython 質問する

次のようなリストがあるとします。

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')]

おすすめ記事