python - 具有多个列表的列表理解中的 If 语句

标签 python if-statement zip list-comprehension

我有两个长度相等的列表,如果它们的差异小于 5,我想从两个列表中删除值:

X_List = [0, 95, 99, 107, 589]
Y_List = [94, 98, 104, 587, 1046]

我想删除例如每个使用列表理解的第二个和第三个值:

X_list = [x if y-x <= 5 for (x,y) in zip(X_list, Y_List)]
Y_list = [y if y-x <= 5 for (x,y) in zip(X_list, Y_List)]

但是每行的“for”部分都有错误(无效语法)。这是由于第一个 y 造成的吗?我该如何防止这种情况发生?

最佳答案

你把 if 放在了错误的位置 - 应该放在最后;以下是如何获取没有值的列表:

x_mod = [x for x, y in zip(X_List, Y_List) if abs(x-y)>5]
Y_List = [y for x, y in zip(X_List, Y_List) if abs(x-y)>5]

X_List = x_mod

第一个列表不是直接修改的,而是写入临时变量。如果是这样,就像在原始源中一样,那么第二个理解将必须与已修改的 X_List 一起使用,并且不会产生所需的结果。

我还使用了两个值的绝对差,正如您所说,两个值之间的差值应该大于 5,而不是 Y_List 的成员应该大于 5。

关于python - 具有多个列表的列表理解中的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42215836/

相关文章:

c - 如何在C中读取并保存txt的可变部分

php - 使用 PHP 解压/提取 zip 文件而不依赖任何扩展

php - 从 zip 文件夹中提取文件

python - Plotly subplots - 其 plotly 旁边的图例项

python - Python模块中 "list=list"的作用是什么?

python Mechanize session 未保存

android - 如何将文件压缩到android中的zip文件夹中?

Python Pyqt5 QDateEdit 获取日期字符串

c - 为什么逻辑运算符没有按预期工作?

android - 使用 if 语句使 EditText 不可编辑