python列表理解解压缩多个返回
有人知道如何解压元组中的值以进行列表理解吗?
一个实际的例子:
def func(x,y):
return x*2, y*2
x = [1, 2, 3]; y = [1, 2, 3]
a, b = [ func(i,j) for i, j in zip(x,y) ]
不幸的是,这给了我一个错误,说有太多的值需要解压......
我已经尝试过
zip(*func(i,j))
(a,b) = ...
anyone have any idea how to unpack the values in a tuple for a list comprehension?
So a practical example:
def func(x,y):
return x*2, y*2
x = [1, 2, 3]; y = [1, 2, 3]
a, b = [ func(i,j) for i, j in zip(x,y) ]
Unfortunately, that gives me an error sayin' there are too many values to unpack...
I've tried
zip(*func(i,j))
(a,b) = ...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您的意思是以下内容吗?:
Do you mean the following?:
问题在于列表理解返回类似的内容
,因此列表不仅仅包含两个元素。
我不明白为什么你不能这样做:
如果你担心重复的代码,创建一个函数:
尝试将所有内容打包在一行中,使用花哨的列表解包等,并不一定会增加可读性。
The problem is that the list comprehension returns something like
so the list contains more than just two elements.
I don't see why you can't just do:
If you are worried about duplicate code, create a function:
Trying to pack everything in one line, using fancy list unpacking etc., does not necessarily increase readability.