嗨,请问我怎样才能在2个(2s和1s)元组列表中制作3s元组
list1 = [(2345,7465), (3254,9579)]
list2 = [{'type': '62', 'length': 0.15, 'lanes': 1, 'modes': 'cwt'}, {'type': '62', 'length': 0.16, 'lanes': 1, 'modes': 'cwt'}]
输出应如下所示:
list3 = [(2345,7465,{'type': '62', 'length': 0.15, 'lanes': 1, 'modes': 'cwt'}), (3254,9579,{'type': '62', 'length': 0.16, 'lanes': 1, 'modes': 'cwt'})]
答案 0 :(得分:6)
使用zip()
配对列表并从中生成元组:
list3 = [(l1[0], l1[1], l2) for l1, l2 in zip(list1, list2)]
演示:
>>> list1 = [(2345,7465), (3254,9579)]
>>> list2 = [{'type': '62', 'length': 0.15, 'lanes': 1, 'modes': 'cwt'}, {'type': '62', 'length': 0.16, 'lanes': 1, 'modes': 'cwt'}]
>>> [(l1[0], l1[1], l2) for l1, l2 in zip(list1, list2)]
[(2345, 7465, {'lanes': 1, 'length': 0.15, 'type': '62', 'modes': 'cwt'}), (3254, 9579, {'lanes': 1, 'length': 0.16, 'type': '62', 'modes': 'cwt'})]
答案 1 :(得分:0)
基于使用列表理解的索引:
[ list1[i1]+(list2[i1],) for i1 in range(len(list1))]
输出:
[(2345, 7465, {'lanes': 1, 'length': 0.15, 'type': '62', 'modes': 'cwt'}), (3254, 9579, {'lanes': 1, 'length': 0.16, 'type': '62', 'modes': 'cwt'})]