我刚刚开始学习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()
有人可以向我解释吗?,非常感谢
答案 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)]