根据位置将嵌套列表中的元素提取到单独的列表中

Extract elements in a nested list into separate lists according to the positions

我有一个嵌套列表说:

[[1,2],
 [3,4],
 [5,6]]

如何从此列表中提取列([1,3,5][2,4,6]而不将其 转换为 pandas DataFramenp array 比如:

a = [[1,2],[3,4],[5,6]]
list(pd.DataFrame(a)[0])

a = [[1,2],[3,4],[5,6]]
list(np.array(a)[:,0])

两者都产生 [1,3,5].

像这样

col = 0
[item[col] for item in a]

使用 zip 将您的列表解压为:

a = [[1,2],[3,4],[5,6]]

list1, list2 = zip(*a)

zip returns 元组的迭代器,然后将其解包为 list1list2,如果你想要列表,maplist 然后解压:

list1, list2 = map(list,zip(*a))
print(list1)
[1, 3, 5]
print(list2)
[2, 4, 6]

zip 聚合来自输入迭代的元素。通过使用 zip(*a) 解包,我们使每个内部列表在 zip 中成为一个单独的可迭代对象,然后它将根据它们的位置“组合”每个内部列表中的元素。

如果您需要,这可能会有所帮助 one-line list comprehension:

a = [[1,2],[3,4],[5,6]]

print([[elem[i] for elem in a] for i in range(len(a[0]))])

注意:len(a[0]) 是我正在使用的,因此这仅适用于 inner-lists of equal lengths

你可以试试map function.

y=list(map(lambda x:x[0],a))

我是 python 的新手,请问可以试试吗

a = [[1,2],[3,4],[5,6]]
for i in a:
    print(i[0])