如何只提取列表列表中每个元素的第一个元素?

时间:2014-11-15 23:08:25

标签: python list

我有一个这样的清单:

[[1, 2], [5, 3], [7, 2]]

我想提取每个元素的第一个,即得到这样的输出:

[1,5,7]

怎么做?

3 个答案:

答案 0 :(得分:1)

使用列表理解:

my_list = [[1, 2], [5, 3], [7, 2]]
my_new_list = [ x[0] for x in my_list ]

演示:

>>> my_list = [[1, 2], [5, 3], [7, 2]]
>>> my_list[0]
[1,2]
>>> my_list[0][0]
1

简单而没有列表理解:

my_list = [[1, 2], [5, 3], [7, 2]]
my_new_list = []
for x in my_list:
    my_new_list.append(x[0])

使用lambdamap

# python 2x
my_new_list = map(lambda x:x[0],my_list)
#python 3x
my_new_list = list(map(lambda x:x[0],my_list))

答案 1 :(得分:1)

使用列表理解。例如:

old_list = [[1,2], [5,3], [7,2]]
new_list = [sublist[0] for sublist in old_list]

或者,您可以将mapoperator.itemgetter一起使用。

import operator

old_list = [[1,2], [5,3], [7,2]]
new_list = map(operator.itemgetter(0), old_list)
## in python3
# new_list = list(map(operator.itemgetter(0), old_list))

答案 2 :(得分:1)

使用列表理解:

my_list = [[1, 2], [5, 3], [7, 2]]
new_list = [x[0] for x in my_list]