我有一个包含许多列表的列表,其中每个列表中都有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)
my_list2
应该是一个list
,而不是一个tuple
:my_list2, my_list3 = [list(t) for t in zip(*sum(my_list, []))]
- Ann Zenmy_list2
和my_list3
的各个元素要交换位置,我会感到惊讶。如果是这样,只需使用my_list2 = list(my_list2)
或my_list3 = [*my_list3]
即可,没有必要引入推导式。 - cdlane