15

たとえば、次のようなリストがあります。

list1 = ['good', 'bad', 'tall', 'big']

list2 = ['boy', 'girl', 'guy', 'man']

そして私はこのようなリストを作りたいです:

list3 = ['goodboy', 'badgirl', 'tallguy', 'bigman']

私はこれらのようなものを試しました:

list3=[]
list3 = list1 + list2

ただし、これには次の値のみが含まれますlist1

だから私は使用しましたfor

list3 = []
for a in list1:
 for b in list2:
  c = a + b
  list3.append(c)

ただし、リストが多すぎます(この場合、4 * 4 = 16個)

4

4 に答える 4

23

リスト内包表記は次のように使用できますzip

list3 = [a + b for a, b in zip(list1, list2)]

zip与えた反復可能オブジェクトの要素を組み合わせて、タプルのリストを生成します。したがって、あなたの場合、とからの要素のペアを、最初に使い果たされた方まで返しlist1ますlist2

于 2012-07-28T17:14:21.310 に答える
1

試行するループを使用するソリューションは1つの方法であり、これはXionsソリューションよりも初心者にとって使いやすいものです。

list3 = []
for index, item in enumerate(list1):
    list3.append(list1[index] + list2[index])

これは、より短いソリューションでも機能します。map()とlambdaを使用して、私はzipよりもこれを好みますが、それはすべての人次第です

list3 = map(lambda x, y: str(x) + str(y), list1, list2);
于 2012-07-28T17:17:17.613 に答える
0

これまたは同じサイズの任意の2つのリストについては、次のように使用することもできます。

for i in range(len(list1)):
    list3[i]=list1[i]+list2[i]
于 2012-07-28T17:20:58.593 に答える
0

zipを使用する

list3 = []
for l1,l2 in zip(list1,list2):
    list3.append(l1+l2)

list3 = ['goodboy', 'badgirl', 'tallguy', 'bigman']

于 2012-07-28T17:21:52.577 に答える