根据位置将嵌套列表中的元素提取到单独的列表中
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 DataFrame
或np 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 元组的迭代器,然后将其解包为 list1
和 list2
,如果你想要列表,map
到 list
然后解压:
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])
我有一个嵌套列表说:
[[1,2],
[3,4],
[5,6]]
如何从此列表中提取列([1,3,5]
或 [2,4,6]
)而不将其 转换为 pandas DataFrame
或np 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 元组的迭代器,然后将其解包为 list1
和 list2
,如果你想要列表,map
到 list
然后解压:
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])