我是 python 初学者。我想将 sql 结果转换为列表。这是我的代码:
cursor = connnect_db()
query = "SELECT * FROM `tbl`"
cursor.execute(query)
options = list()
for i,row in enumerate(cursor.fetchall()):
options.append(row[i])
我的表中有 6 列,但此代码不会创建 6 个元素列表。我哪里做错了?
如果你在 Python 中有一个可迭代对象,要创建一个列表,只需调用the list()内置 http://docs.python.org/3/library/functions.html#func-list:
list(cursor.fetchall())
请注意,可迭代对象通常与列表一样有用,并且可能更高效,因为它可能是惰性的。
您的原始代码失败了,因为它没有太大意义。您循环遍历行并枚举它们,这样您就得到了(0, first_row), (1, second_row)
等等... - 这意味着您正在构建每个第 n 行的第 n 项的列表,这根本不是您想要的。
这段代码显示了一些问题 - 首先,list()
不带任何参数通常最好用空列表文字替换([]
),因为它更容易阅读。
接下来,您尝试按索引循环,这在 Python 中是一个坏主意。循环遍历值本身,而不是用于获取值的索引。
另请注意,当您do需要建立一个像这样的值列表,列表理解 http://www.youtube.com/watch?v=pShL9DCSIUw是最好的方法,而不是创建一个列表,然后附加到它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)