1

私は2つのリストを持っています:

list1 = ['a','b','c']
list2 = ['1','2','3','4','5']

リストを作成したい:

list3 = [('1','a'),('2','b'),('3','c'),('4','a'),('5','b')]

つまり、それらの間で循環的な組み合わせを行います。だから、私の質問は次のとおりです。それを行うためのより効率的な方法はどれですか?

4

2 に答える 2

10
>>> from itertools import cycle
>>> list1 = ['a','b','c']
>>> list2 = ['1','2','3','4','5']
>>> zip(list2, cycle(list1))
[('1', 'a'), ('2', 'b'), ('3', 'c'), ('4', 'a'), ('5', 'b')]

コメントで言及されているように、両方のリストを循環させて最初の n 個の要素を取得したい場合は、

>>> from itertools import islice, izip
>>> list(islice(izip(cycle(list2), cycle(list1)), 5))
[('1', 'a'), ('2', 'b'), ('3', 'c'), ('4', 'a'), ('5', 'b')]
于 2013-07-06T01:09:26.390 に答える