我目前有这个多维列表,我正在尝试从中提取第一列:
>>> print(data)
[['com.borderstylo.retrollect', '0', '0'], ['aabasoft.presents.goldprice', '0', '0'], ['aberl.vlc.light.mote', '0', '0']]
当我使用时
sitelist = []
for row in data:
sitelist.append(row[0])
print(sitelist)
我得到下面的输出,这就是我想要的。
['com.borderstylo.retrollect', 'aabasoft.presents.goldprice', 'aberl.vlc.light.mote']
但是,当我使用时
sitelist = []
sitelist = (row[0] for row in data)
print(sitelist)
type(sitelist)
我得到下面的输出,它是一个生成器对象。什么是生成器对象?为什么第一组代码返回的内容与第二组代码不同?两者看起来非常相似。
<generator object <genexpr> at 0x001A9E10>
generator
非常感谢您的回复。 python 新手,但真的很想学习。
最佳答案
Python 中的列表推导式是使用 []
创建的。
作为替代方案,在处理非常大的数据时,您可以使用与推导式相同的语法构造生成器,仅使用 ()
。
因此,只需将 ()
更改为 []
即可。
关于python - 这2个for循环有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43527451/