我想在括号中返回一行for循环中的两个值。
x,y = [xval, yval for xval, yval in zip(x,y) if condition]这给了我一个语法错误。我只能像这样运行这个:
xy = [[xval,yval] for xval, yval in zip(x,y) if condition]
x = xy[:,0]
y = xy[:,1]这并不是很漂亮。有没有类似于上例的运行方式?
我使用python-3.7在Linux上运行所有这些
发布于 2020-06-18 16:43:27
只需对它们执行unzip:
x, y = zip(*[[xval,yval] for xval, yval in zip(x,y) if condition])发布于 2020-06-18 16:35:14
如果你要实现的是迭代来自2个列表的压缩元组,你可以使用解构在元组上创建一个for循环:
for x,y in [(xval,yval) for xval, yval in zip(liste1,liste2) if condition]:
print(x,y)如果你试图根据一个条件从两个列表中剔除元组,并得到过滤后的列表,那么Netwave的答案是正确的。
https://stackoverflow.com/questions/62445491
复制相似问题