python - 如何从存储在元组列表列表中的两个元素元组中制作两个列表

标签 python list

我有一个包含许多列表的列表,其中有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)

最佳答案

您的方法很接近,但是您需要先展平:

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]

关于python - 如何从存储在元组列表列表中的两个元素元组中制作两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62641851/

相关文章:

Python 3 打印utf-8 编码字符串问题

python - 查找列的最大值,并在另一列中返回值

python - 将样式化的 pandas 数据框导出到 excel

python - 如何将列表中的每一项添加到 Python 中的前一项?

c# - C# 中的多维列表

python - 合并列表中重叠的字符串序列

c - 使用函数处理链表的程序可以运行,但产生的结果为 1

基于Python的简单计时器脚本无法正常工作

python - 如何消除相等运算符的 python3 弃用警告?

python - 根据有序列表中的键对字典值进行排序