创建3s的元组

时间:2014-03-26 12:02:45

标签: python list python-2.7 tuples

嗨,请问我怎样才能在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'})]

2 个答案:

答案 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'})]