亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從存儲在元組列表列表中的雙元素元組中創建兩個列表

如何從存儲在元組列表列表中的雙元素元組中創建兩個列表

藍山帝景 2023-02-07 16:56:45
我有一個包含許多列表的列表,其中有 4 個元組。my_list = [[(12, 1), (10, 3), (4, 0), (2, 0)],            [(110, 1), (34, 2), (12, 1), (55, 3)]]我希望它們位于兩個單獨的列表中,例如:my_list2 = [12,10,4,2,110,34,12,55] my_list3 = [1,3,0,0,1,2,1,3]我的嘗試是為此使用該map功能。my_list2 , my_list3 = map(list, zip(*my_list))但這給了我一個錯誤:ValueError: too many values to unpack (expected 2)
查看完整描述

5 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

您的方法非常接近,但您需要先展平:


from itertools import chain


my_list = [[(12, 1), (10, 3), (4, 0), (2, 0)], [(110, 1), (34, 2), (12, 1), (55, 3)]]


my_list2 , my_list3 = map(list,zip(*chain.from_iterable(my_list)))


my_list2

# [12, 10, 4, 2, 110, 34, 12, 55]


my_list3

# [1, 3, 0, 0, 1, 2, 1, 3]


查看完整回答
反對 回復 2023-02-07
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

一種不同的,簡單的方法:


my_list = [[(12, 1), (10, 3), (4, 0), (2, 0)], [(110, 1), (34, 2), (12, 1), (55, 3)]]


first = []

second = []


for inner in my_list:

    for each in inner:

        first.append(each[0])

        second.append(each[1])


print(first)  # [12, 10, 4, 2, 110, 34, 12, 55]

print(second)  # [1, 3, 0, 0, 1, 2, 1, 3]


查看完整回答
反對 回復 2023-02-07
?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

您可以使用列表理解 (5.1.3)

元組的第一個數字:

my_list2 = [tuple[0] for inner in my_list for tuple in inner]

第二個元組數:

my_list3 = [tuple[1] for inner in my_list for tuple in inner]


查看完整回答
反對 回復 2023-02-07
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

一種不同的,簡單的方法:


my_list = [[(12, 1), (10, 3), (4, 0), (2, 0)], [(110, 1), (34, 2), (12, 1), (55, 3)]]


first = []

second = []


for inner in my_list:

    for each in inner:

        first.append(each[0])

        second.append(each[1])


print(first)  # [12, 10, 4, 2, 110, 34, 12, 55]

print(second)  # [1, 3, 0, 0, 1, 2, 1, 3]


查看完整回答
反對 回復 2023-02-07
?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

這個怎么樣?


my_list = [[(12, 1), (10, 3), (4, 0), (2, 0)], [(110, 1), (34, 2), (12, 1), (55, 3)]]


flatten = lambda l: [item for my_list in l for item in my_list]


list1, list2 = zip(*flatten(my_list))


查看完整回答
反對 回復 2023-02-07
  • 5 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號