从元组列表创建 Python 列表
问题描述
例如,如果我有一个元组列表,例如
If I have, for example, a list of tuples such as
a = [(1,2)] * 4
如何创建每个元组的第一个元素的列表?即[1, 1, 1, 1]
.
how would I create a list of the first element of each tuple? That is, [1, 1, 1, 1]
.
解决方案
使用 列表理解:
>>> a = [(1,2)] * 4
>>> [t[0] for t in a]
[1, 1, 1, 1]
你也可以解包元组:
>>> [first for first,second in a]
[1, 1, 1, 1]
如果你想变得花哨,结合 map
和 operator.itemgetter
.在 python 3 中,您必须将构造包装在 list
中以获取列表而不是可迭代对象:
If you want to get fancy, combine map
and operator.itemgetter
. In python 3, you'll have to wrap the construct in list
to get a list instead of an iterable:
>>> import operator
>>> map(operator.itemgetter(0), a)
<map object at 0x7f3971029290>
>>> list(map(operator.itemgetter(0), a))
[1, 1, 1, 1]
相关文章