一个 SQL 查询给了我一个元组列表,像这样:
[(elt1, elt2), (elt1, elt2), (elt1, elt2), (elt1, elt2), (elt1, elt2), ...]
我想要每个元组的所有第一个元素。现在我用这个:
rows = cur.fetchall()
res_list = []
for row in rows:
res_list += [row[0]]
但我认为可能有更好的语法来做到这一点。你知道更好的方法吗?
最佳答案
使用 list comprehension :
res_list = [x[0] for x in rows]
下面是一个演示:
>>> rows = [(1, 2), (3, 4), (5, 6)]
>>> [x[0] for x in rows]
[1, 3, 5]
>>>
或者,您可以使用解包而不是 x[0]
:
res_list = [x for x,_ in rows]
下面是一个演示:
>>> lst = [(1, 2), (3, 4), (5, 6)]
>>> [x for x,_ in lst]
[1, 3, 5]
>>>
这两种方法实际上做同样的事情,所以你可以选择任何你喜欢的。
关于python - 在Python中获取列表中每个元组的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22412258/