gpt4 book ai didi

list - 在 Python 中解压列表

转载 作者:行者123 更新时间:2023-12-05 00:46:26 24 4
gpt4 key购买 nike

假设我有一个通过 MySQLDB 访问的 MySQL 表。我有一个标准

SELECT statement:
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > '%d'" % (1000)

然后我用光标执行它并如下所示取出列。

   cursor.execute(sql)
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]

是否可以在一条语句中分配所有列名?像这样的东西:

for row in results:
fname, lname, age, sex, income = unpack(row)

我总能做到:

fname, lname, age, sex, income = row[0], row[1], row[2], row[3], row[4]

但是我的表格中有超过 30 列,这让我很痛苦。请注意,虽然我现在正在使用 MySQL,但我希望它尽可能与数据库无关;我们仁慈的霸主可能会决定随时将所有内容移植到另一个数据库。

最佳答案

只是做:

fname, lname, age, sex, income = row

如果 len(row)==5 它应该可以工作,否则,如果你有 python 3,你可以使用 extended iterable unpacking

fname, lname, age, sex, income, *other = row

other 将是所有剩余元素的列表。

如果你有 python 2:您可以使用此 answer 中的小函数:

def unpack_list(a, b, c, d, e, *f):
return a, b, c, d, e, f

fname, lname, age, sex, income, other = unpack_list(*row)

如果你只想要前 5 个元素,就像@Ev.Kounis 的意思,你可以这样做:

fname, lname, age, sex, income = row[:5]

关于list - 在 Python 中解压列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39041322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com