python – 在列表理解期间无法解压缩返回的元组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在列表理解期间无法解压缩返回的元组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含897字,纯文字阅读大概需要2分钟。
内容图文
![python – 在列表理解期间无法解压缩返回的元组](/upload/InfoBanner/zyjiaocheng/741/7d31547c0e864b34b0bb0c70cc901381.jpg)
我有一个接受输入并返回3项元组的函数:
def f(a, b):
x = a + 1
y = x + 2
z = y + 3
return (x, y, z)
我从一组元组开始:
my_set = {(1, 2), (3, 4), ... (m, n)}
我需要构建一个列表,但是后面会抛出一个TypeError:
[(a, b, x, y, z, (x, y, z)) for a, b in my_set for x, y, z in f(a, b)]
TypeError: 'int' object is not iterable
我正在审查this帖子,它显示了一个类似的过程,但由于某种原因,for x,y,z …抛出了异常,我不确定我是否只是忽略了一些小事.
解决方法:
将f(a,b)解包为x,y,z是有效的,但这不是你正在做的事情.对于f(a,b)中的x,y,z,尝试解包f(a,b)的每个元素,就像每个元素是一个单独的3元组一样.
你正在寻找的是一种方法,将f(a,b)分配给列表理解中的某些东西,而不是迭代它.有解决方法,但我建议只使用正常循环:
l = []
for a, b in my_set:
x, y, z = f(a, b)
l.append((a, b, x, y, z, (x, y, z)))
如果你真的想使用列表推导,一个解决方法是循环遍历一个虚拟列表[f(a,b)]而不是f(a,b):
[(a, b, x, y, z, (x, y, z)) for a, b in my_set for x, y, z in [f(a, b)]]
内容总结
以上是互联网集市为您收集整理的python – 在列表理解期间无法解压缩返回的元组全部内容,希望文章能够帮你解决python – 在列表理解期间无法解压缩返回的元组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。