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

新手上路,请多包涵

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

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

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

 [1,2]

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

原文由 wasimbhalli 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 433
2 个回答
>>> a = [(1, u'abc'), (2, u'def')]
>>> [i[0] for i in a]
[1, 2]

原文由 Rakesh 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

编辑(@BradSolomon):以上适用于 Python 2.x,其中 zip 返回一个列表。

在 Python 3.x 中, zip 返回一个迭代器,以下等同于以上:

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

原文由 WayneSan 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题