python - 如何使用条件从列表推导式中排除特定元素

标签 python list

我正在尝试使用列表理解从列表中提取特定元素,并在列表索引上使用条件。
当列表索引不同时,需要进行特定操作。
当列表索引相同时,不应添加任何元素。
后者是我不知道该怎么做,除了添加 '' 并随后删除它。

示例(比我的实际情况更简单,但概念上相同):

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/

相关文章:

python - 如何使用 PYZBAR 解码二维码 OpenCV - Python?

python - 使用python将pyspark数据框中的多列合并为一列

python - 在python中获取所有属性XML并将其放入字典

python - 如何删除嵌套容器中的重复条目

python - 使用 matplotlib,如何打印 "actual size"?

带有标志的 Python re.sub 不会替换所有出现

python - Python 中字典列表的条件操作

python - 需要帮助按键对对象列表进行排序

python - 我可以选择在列表中包含一个元素而不用 python 中的 else 语句吗?

c# - 为 List<T>() 提供大小参数