如何将列表中的成员表示为python中的列表

时间:2017-06-07 06:27:21

标签: python list matrix

我有一份清单清单。如何在不使用循环和赋值的情况下将每个元素中的特定索引成员作为列表获取。下面的代码片段就是一个例子。实际列表包含3个以上的子列表。输出应该像下面给出的mem_lst列表。

    alst = [['abc', 1 , 2], ['cde', 2, 2], ['xyz', 2, 2]]
    o/p: mem_lst = [ 'abc', 'cde', 'xyz']

3 个答案:

答案 0 :(得分:1)

In [1]: alst = [['abc', 1 , 2], ['cde', 2, 2], ['xyz', 2, 2]]

In [2]: import operator

In [3]: map(operator.itemgetter(0), alst)
Out[3]: <map at 0x104b43160>

In [4]: list(_)
Out[4]: ['abc', 'cde', 'xyz']

在这种方法中你不使用循环,你可以使用map作为迭代器来避免list的存储,但如果你强烈需要list,需要将其包装在list()

答案 1 :(得分:-1)

你可以在python 2.x中执行此操作,

<强>拉链(* ALST)[0]

>>> lst = [['abc', 1, 2], ['cde', 2, 2], ['xyz', 2, 2]]
>>> zip(*lst)[0]
('abc', 'cde', 'xyz')
>>> 

在python 3中,你可以这样做,

<强>列表(拉链(* ALST))[0]

>>> lst
[['abc', 1, 2], ['cde', 2, 2], ['xyz', 2, 2]]
>>> list(zip(*lst))[0]
('abc', 'cde', 'xyz')
>>> 

答案 2 :(得分:-1)

没有任何循环:

alst = [['abc', 1 , 2], ['cde', 2, 2], ['xyz', 2, 2]]
lst = [alst[0][0],alst[1][0],alst[2][0]]
print(lst)