当前位置: 首页 > 面试题库 >

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

郑浩博
2023-03-14
问题内容

SQL查询为我提供了一个元组列表,如下所示:

[(elt1, elt2), (elt1, elt2), (elt1, elt2), (elt1, elt2), (elt1, elt2), ...]

我想要每个元组的所有头一个元素。现在我用这个:

rows = cur.fetchall()
res_list = []
for row in rows:
    res_list += [row[0]]

但是我认为可能会有更好的语法来做到这一点。你知道更好的方法吗?


问题答案:

使用列表理解:

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]
>>>

两种方法实际上都做相同的事情,因此您可以选择任意一个。



 类似资料:
  • 问题内容: 返回以下内容的最紧凑的方法是什么: 给定一个元组列表,返回一个由元组的第一个(或第二个,无关紧要)元素组成的列表。 对于: 返回的列表将是 问题答案: 如果需要同时使用zip

  • 问题内容: 我有一个像下面这样的列表,其中第一个元素是id,另一个是字符串: 我只想从此元组列表创建ID列表,如下所示: 我将使用此列表,因此它必须是整数值的列表。 问题答案:

  • 问题内容: 我有一个这样的清单: 我想要这样的结果(列表中的 每个 第一个元素): 我尝试了[:: 1] [0],但没有用 我几周前才开始学习Python。Python版本= 2.7.9 问题答案: 您可以从列表理解中的每个元素获取索引 同样,要学究,您没有的,您没有的。

  • 问题内容: 我有一个像这样的元组列表(总是成对出现): 我想找到每对中第一项的总和,即: 如何在Python中执行此操作?目前,我正在遍历列表: 我觉得必须有一种更Python化的方式。 问题答案: 与Python 2.3兼容的版本是 或在最新版本的Python中,请参见此答案。 也会做。

  • 问题内容: 例如,存储一百万个(32位)整数列表需要多少内存? 问题答案: 有用的链接: 如何获取python对象的内存大小/用法 python对象的内存大小? 如果将数据放入字典中,我们如何计算数据大小? 但是,他们没有给出明确的答案。要走的路: 使用/不使用列表来测量Python解释器消耗的内存(使用OS工具)。 使用第三方扩展模块,该模块定义某种sizeof(PyObject)。 更新 :

  • 问题内容: 我有这样的结构: 我想使用内置方法(在一行中)对整数()求和。 有任何想法吗? 问题答案: 会工作。

  • 问题内容: 我有一个数组: 我想获得此数组的第一个元素。预期结果: 字符串 一个要求: 它不能通过引用传递来完成 ,所以不是一个好的解决方案。 我怎样才能做到这一点? 问题答案: 原始答案,但代价昂贵(O(n)): 在O(1)中: 其他用例等 如果修改(就重置数组指针而言)不是问题,则可以使用: 如果需要数组“副本”,则从理论上讲应该更有效: 使用PHP 5.4+(但如果为空,则可能导致索引错误)

  • 问题内容: 在Python中,如何获取列表的最后一个元素? 问题答案: 是最短和最的。 实际上,你可以使用此语法做更多的事情。该语法获取第n到最后一个元素。因此获取最后一个元素,获取倒数第二个,依此类推,一直向下到,这将为你提供第一个元素。 你也可以通过这种方式设置列表元素。例如: 请注意,如果期望的项目不存在,则按索引获取列表项将引发。这意味着如果为空将引发异常,因为空列表不能有最后一个元素。