初学者到python这里。
我有两个我要合并的嵌套列表:
list1 = ['a',
(b, c),
(d, e),
(f, g, h) ]
list2 = [(p,q),
(r, s),
(t),
(u, v, w) ]
我正在寻找的输出是:
list3 = [(a, p, q),
(b, c, r, s),
(d, e, t),
(f, g, h, u, v, w) ]
这可以在没有任何外部库的情况下完成吗? 注意:len(list1)= len(list2)
答案 0 :(得分:12)
使用zip
功能和list comprehensions:
list1 = [('a', ),
('b', 'c'),
('d', 'e'),
('f', 'g', 'h') ]
list2 = [('p', 'q'),
('r', 's'),
('t', ),
('u', 'v', 'w') ]
print [a + b for a, b in zip(list1, list2)]
答案 1 :(得分:3)
from operator import add
list3 = map(add, list1, list2)
答案 2 :(得分:0)
如果内部列表/元组中的顺序不重要,则可以使用数学集操作。
打印[tuple(set(a)| set(b))a,b in zip(x,y)]
set(a)| set(b)将iterables a和b转换为sets并取两组的并集。然后根据需要在输出格式中将它们转换回元组。
由于您是python的初学者,强烈建议您掌握列表推导。它太强大和简洁。除了使您的代码更加“pythonic”之外,列表推导还可以作为“map”和“filter”函数的更友好的替代品。
答案 3 :(得分:0)
list_3 = []
list_3.extend(list_1 + list_2)