Python,[i for i]是什么意思

时间:2019-09-17 08:57:04

标签: python for-loop

我刚刚开始学习python,我解决了这个问题,但是有些事情我不太了解。这些句子中的[i for i]是什么意思:

def sortByHeight(a):
    iL = [i for i, x in enumerate(a) if x == -1]
    print(iL)
    sL = list(filter(lambda b: b != -1, a))
    sL.sort()

有人可以向我解释吗?,非常感谢

1 个答案:

答案 0 :(得分:1)

也许是这样写的

iL = [i for (i, x) in enumerate(a) if x == -1]

将帮助您理解。

enumerate函数将一个可迭代项(例如一个列表)作为输入,并基于此可迭代项返回一个(index, value)列表。
实际上,它返回一个生成器,而不是列表,但这就是这个主意。
例如:

list(enumerate([3, 14, 15, 9]))
>>> [(0, 3), (1, 14), (2, 15), (3 9)]