我目前有这个多维列表,我正在尝试从中提取第一列:

>>> 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中的列表推导是使用[]创建的。
或者,在处理非常大的数据时,可以仅使用()使用与理解相同的语法构造生成器。

因此,只需将()更改为[]

09-30 20:27