如何解决在Python中将数据有效地过滤为多个变量
如何在不重复浏览两次压缩列表的情况下更有效地进行跟踪:
/home/site/wwwroot/
解决方法
Pythonic少一些:
x = []
y = []
for item1,item2 in zip(foo,bar):
x.append((item1['a'],item2))
y.append(item2.replace(item1['b'],''))
,
通常,您可以使用生成器表达式将多个值输出为元组,然后将元组的输出序列zip
分成单独的序列,以便可以将它们解包为单独的变量。
因此,例如:
x = [i + 1 for i in lst]
y = [i + 2 for i in lst]
您可以这样做:
x,y = zip(*((i + 1,i + 2) for i in lst))
在这种情况下,x
和y
将成为元组,因此,如果您需要x
和y
作为实际列表,则可以map
输出到list
构造函数的序列:
x,y = map(list,zip(*((i + 1,i + 2) for i in lst)))
因此,您问题中的陈述可以重写为:
x,zip(*(((item1['a'],item2),item2.replace(item1['b'],'')) for item1,bar))))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。