假设我有一个这样的列表:
mylist = ["a","b","c","d"]
要获得打印的值及其索引,我可以使用Python的enumerate函数,如下所示
enumerate
>>> for i,j in enumerate(mylist): ... print i,j ... 0 a 1 b 2 c 3 d >>>
现在,当我尝试在A中使用它时,出现list comprehension了这个错误
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
所以,我的问题是:在列表理解中使用枚举的正确方法是什么?
尝试这个:
[(i, j) for i, j in enumerate(mylist)]
您需要放入i,j一个元组以使列表理解起作用。另外,鉴于enumerate() 已经 返回一个元组,您可以直接将其返回而无需先拆包:
i,j
enumerate()
[pair for pair in enumerate(mylist)]
无论哪种方式,返回的结果都是预期的:
> [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]