python - 在Python中获取列表中每个元组的第一个元素

标签 python python-2.7 syntax

一个 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/

相关文章:

python - 如何在python中从一个列表中创建多个列表

c++ - main 不能为空

mysql - 我可以选择性地将数据从文本文件导入MySQL吗?

Python;将数据帧输出写入不同的子目录

python - 使用 Python Blender 库编辑 STL 文件

python - 在scrapy中提取json响应

c# - 'this'在C#语言中有什么用?

python - 在 3 个相等和的列表中查找列表分割的 2 个索引的可能性

python - 在不更改 sys.path 的情况下控制 python 中的导入顺序

python - 在 Python 中乘除非类型和整数