枚举循环中的三元运算符

时间:2017-01-06 18:11:35

标签: python list-comprehension ternary-operator enumerate

在我的代码中,我正在尝试遍历枚举对象,并使用列表推导选择性地将枚举中的一些值添加到新列表中。

这有效:

a = [1, 2, 3, 4, 5]
s = [i[1] for i in enumerate(a)]

当然,这基本上只是将一个列表复制到s。

这不起作用(一个列表相同):

s = [i[1] if i[1] != 2 for i in enumerate(a)]

我认为除了2之外,这只会将列表的每个元素复制到s,但我得到语法错误。有谁知道这里发生了什么?

1 个答案:

答案 0 :(得分:0)

你错放了if部分:

  s = [i[1] for i in enumerate(a) if i[1] != 2]