我在Python中有以下代码,我不确定这里的for循环是如何工作的。
cur.execute("SELECT CUST_ID, COMPANY, LASTNAME, CITY, STATE FROM
mytable")
colnames = [desc[0] for desc in cur.description]
这是如何工作的?
[desc[0] for desc in cur.description]
什么是desc[0
]?
答案 0 :(得分:5)
根据您提供给我们的代码,似乎desc
本身就是一个数组,因此colnames
是从desc[0]
得到的所有desc
的数组} cur.description
desc[0]
是desc中的第一个项目,因为Python中的数组是零索引的。
答案 1 :(得分:1)
它使用可迭代对象,尤其是 next 方法,它会消耗对象内部的值,直到停止迭代,它就像生成器对象一样......
答案 2 :(得分:1)
如果对某些事情有疑问,请尝试重新创建。虽然,它可以是任何可迭代的,我们可以假设它只是一个列表,然后:
description = [['first'], ['second', 'third'], [x, y, z], [...], ...]
colnames = [desc[0] for desc in description]
输出中的:
['first', 'second', x, ... ]