1

私はpythonの初心者です.2つのリストがあります:

l1 = ['a','b','c','d']
l2 = ['new']

このような新しいリストを取得したい

l3 = [('a','new'),('b','new'),('c','new'),('d','new')]

2 つのリストを組み合わせる最良の方法は何ですか?

4

5 に答える 5

5
>>> from itertools import product
>>> l1 = ['a','b','c','d']
>>> l2 = ['new']
>>> list(product(l1,l2))
[('a', 'new'), ('b', 'new'), ('c', 'new'), ('d', 'new')]
于 2012-05-01T06:34:28.473 に答える
5

要素が常に 1 つだけの場合l2は、物事を過度に複雑にする必要はありません。

l3 = [(x, l2[0]) for x in l1]
于 2012-05-01T06:42:06.137 に答える
3

itertoolsのドキュメントを参照してください。

特に、デカルト積には product を使用します。

from itertools import product:
l1 = ['a','b','c','d']
l2 = ['new']
# Cast to list for l3 to be a list since product returns a generator
l3 = list(product(l1, l2))  
于 2012-05-01T06:35:27.127 に答える
2
>>> from itertools import repeat
>>> l1 = ['a','b','c','d']
>>> l2 = ['new']
>>> zip(l1,repeat(*l2))
[('a', 'new'), ('b', 'new'), ('c', 'new'), ('d', 'new')]
于 2012-05-01T06:31:03.577 に答える
0

関数なしでリスト内包表記を使用するだけです。

l3 = [(x, y) (l1 の x の場合、l2 の y の場合)]

于 2012-05-01T09:23:38.240 に答える