[英]python generators in lists can't use it
我创建了一个像这样的列表:
z=[5,4]
并且我需要将此列表值分配给另一个列表,并将z list的元素设置为该列表的第一个元素,所以我这样做:
other.append([i,0,'tweak'] for i in z)
但它不断生成类似这样的东西:
[<generator object <genexpr> at 0x024B7F30>, <generator object <genexpr> at 0x02562288>]
我无法在此表单上使用其他列表!
我希望我的其他列表如下所示:
[[5,0,'tweak'][4,0,'tweak']]
[i,0,'tweak'] for i in z
是生成器表达式。 没有声明显式的可迭代类型(列表用方括号[l1, l2]
)-解释器检测到它并创建按需计算值的对象-生成器。
如果要创建列表,则必须显式声明。
other.append([[i,0,'tweak'] for i in z]) # appends list, not generator
笔记:
[i,0,'tweak'] for i in z
创建一个生成器函数,而不是List Comprehension
将其转换,您可以添加方括号, ie [[i,0,'tweak'] for i in z]
[[i,0,'tweak'] for i in z]
创建lists of list [[LOL]]
,当您追加到列表中时,它成为lists of lists of list [[[LOLOL]]]
避免您可以使用append
你可以这样做
码:
z=[5,4]
other=[]
other.extend([[i,0,'tweak'] for i in z])
print other
这个 ?
z=[5,4]
other = [] # or some list
other += [[i,0,'tweak'] for i in z]
您根本不需要在这里使用append,因为您想直接构造列表。 只需使用列表理解即可:
other = [[i,0,'tweak'] for i in z]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.