我有一份清单清单。如何在不使用循环和赋值的情况下将每个元素中的特定索引成员作为列表获取。下面的代码片段就是一个例子。实际列表包含3个以上的子列表。输出应该像下面给出的mem_lst列表。
alst = [['abc', 1 , 2], ['cde', 2, 2], ['xyz', 2, 2]]
o/p: mem_lst = [ 'abc', 'cde', 'xyz']
答案 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)