如何在元组列表中获取第一个元素?

2024-05-10 18:05:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个如下列表,其中第一个元素是id,另一个是字符串:

[(1, u'abc'), (2, u'def')]

我只想从这个元组列表创建一个id列表,如下所示:

[1,2]

我将在__in中使用此列表,因此它必须是一个整数值列表。


Tags: 字符串inid元素列表def数值元组
3条回答
>>> a = [(1, u'abc'), (2, u'def')]
>>> [i[0] for i in a]
[1, 2]

你是说这样的事吗?

new_list = [ seq[0] for seq in yourlist ]

实际上,您拥有的是一个tuple对象列表,而不是一个集合列表(正如您最初的问题所暗示的那样)。如果它实际上是一个集合列表,那么没有第一个元素因为集合没有顺序。

在这里,我创建了一个平面列表,因为通常这比创建一个包含1个元素元组的列表更有用。但是,只需将seq[0]替换为(seq[0],),就可以轻松地创建一个包含1个元素元组的列表。

使用zip函数来分离元素:

>>> inpt = [(1, u'abc'), (2, u'def')]
>>> unzipped = zip(*inpt)
>>> print unzipped
[(1, 2), (u'abc', u'def')]
>>> print list(unzipped[0])
[1, 2]

编辑(@bradsomon): 上面的方法适用于Python 2.x,其中zip返回一个列表。

在Python 3.x中,zip返回一个迭代器,下面与上面的等价:

>>> print(list(list(zip(*inpt))[0]))
[1, 2]

相关问题 更多 >