首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python 3中具有两个返回的单行for循环

python 3中具有两个返回的单行for循环
EN

Stack Overflow用户
提问于 2020-06-18 16:20:44
回答 2查看 36关注 0票数 0

我想在括号中返回一行for循环中的两个值。

代码语言:javascript
复制
x,y = [xval, yval for xval, yval in zip(x,y) if condition]

这给了我一个语法错误。我只能像这样运行这个:

代码语言:javascript
复制
xy = [[xval,yval] for xval, yval in zip(x,y) if condition]
x = xy[:,0]
y = xy[:,1]

这并不是很漂亮。有没有类似于上例的运行方式?

我使用python-3.7在Linux上运行所有这些

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-18 16:43:27

只需对它们执行unzip

代码语言:javascript
复制
x, y = zip(*[[xval,yval] for xval, yval in zip(x,y) if condition])
票数 0
EN

Stack Overflow用户

发布于 2020-06-18 16:35:14

如果你要实现的是迭代来自2个列表的压缩元组,你可以使用解构在元组上创建一个for循环:

代码语言:javascript
复制
for x,y in [(xval,yval) for xval, yval in zip(liste1,liste2) if condition]:
  print(x,y)

如果你试图根据一个条件从两个列表中剔除元组,并得到过滤后的列表,那么Netwave的答案是正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62445491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档