1

Pythonでリスト内包表記を使用して2つのリストaとbをcに結合する方法はありますか?

a=[1,2,3]
b=['a','b']

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

7 に答える 7

6
>>> from itertools import product
>>> a=[1,2,3]
>>> b=['a','b']
>>> ['%d%s' % el for el in product(a,b)]
['1a', '1b', '2a', '2b', '3a', '3b']

新しい文字列フォーマット

>>> ['{0}{1}'.format(*el) for el in product(a,b)]
['1a', '1b', '2a', '2b', '3a', '3b']
于 2012-04-23T14:54:23.503 に答える
6
>>> a = [1,2,3]
>>> b = ['a', 'b']
>>> c = ['%d%c' % (x, y) for x in a for y in b]
>>> c
['1a', '1b', '2a', '2b', '3a', '3b']
于 2012-04-23T14:56:33.397 に答える
2

使用するc = ["%d%s" % (x,y) for x in a for y in b]

于 2012-04-23T14:55:13.793 に答える
2

リスト内包表記は、複数のオブジェクトをループする可能性があります。

In[3]: [str(a1)+b1 for a1 in a for b1 in b]

Out[3]: ['1a', '1b', '2a', '2b', '3a', '3b']

数値を文字列に変換する際の微妙な点に注意してください。

于 2012-04-23T14:56:39.930 に答える
2

「ネストされた」バージョンを使用するだけです。

c = [str(i) + j for i in a for j in b]
于 2012-04-23T14:56:40.033 に答える
2
import itertools
c=[str(r)+s for r,s in itertools.product(a,b)]
于 2012-04-23T15:05:18.673 に答える
1

jamylakのソリューションのやや類似したバージョン:

>>> import itertools
>>> a=[1,2,3]
>>> b=['a','b']
>>>[str(x[0])+x[1] for x in itertools.product(a,b)]
['1a', '1b', '2a', '2b', '3a', '3b']
于 2012-04-23T15:08:29.093 に答える