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,z,(x,z)) for a,b in my_set for x,z in f(a,b)]TypeError: 'int' object is not iterable
我正在审查this帖子,它显示了一个类似的过程,但由于某种原因,for x,z …抛出了异常,我不确定我是否只是忽略了一些小事.
解决方法 将f(a,b)解包为x,z是有效的,但这不是你正在做的事情.对于f(a,b)中的x,尝试解包f(a,b)的每个元素,就像每个元素是一个单独的3元组一样.你正在寻找的是一种方法,将f(a,b)分配给列表理解中的某些东西,而不是迭代它.有解决方法,但我建议只使用正常循环:
l = []for a,b in my_set: x,z = f(a,b) l.append((a,z)))
如果你真的想使用列表推导,一个解决方法是循环遍历一个虚拟列表[f(a,b)]而不是f(a,b):
[(a,z in [f(a,b)]]总结
以上是内存溢出为你收集整理的python – 在列表理解期间无法解压缩返回的元组全部内容,希望文章能够帮你解决python – 在列表理解期间无法解压缩返回的元组所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)