[英]How to separate a Python list into two lists, according to some aspect of the elements
[英]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
返回一個元組迭代器,然后將其解包到list1
和list2
中,如果您想要列表, map
list
然后解包:
list1, list2 = map(list,zip(*a))
print(list1)
[1, 3, 5]
print(list2)
[2, 4, 6]
zip
聚合來自輸入迭代的元素。 通過使用zip(*a)
解包,我們使每個內部列表在zip
中成為一個單獨的可迭代對象,然后根據它們的位置“組合”每個內部列表中的元素。
你可以試試map
function
。
y=list(map(lambda x:x[0],a))
如果您想要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
。
我是 python 的初學者,請你試試這個。
a = [[1,2],[3,4],[5,6]]
for i in a:
print(i[0])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.