我正在尝试使用列表理解从列表中提取特定元素,并在列表索引上使用条件。
当列表索引不同时,需要进行特定操作。
当列表索引相同时,不应添加任何元素。
后者是我不知道该怎么做,除了添加 ''
并随后删除它。
示例(比我的实际情况更简单,但概念上相同):
x = [0, 1, 2, 3, 4]
i = 2
x2 = [2 * x[j] - x[i] if j > i else 2 * x[i] - x[j] if j < i else '' for j in x]
x2.remove('')
x2
# [4, 3, 4, 6]
如何先验地排除 i == j
的情况?
我本以为最后没有 else ''
就可以了,但后来我收到了 invalid_syntax
错误。
我想本质上我是在寻找一个中性元素来进行列表理解。
最佳答案
您可以在for
后面放置if
子句来过滤某些元素。
x2 = [2 * x[j] - x[i] if j > i else 2 * x[i] - x[j] for j in x if j != i]
关于python - 如何使用条件从列表推导式中排除特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74529555/