1

私はPythonに少し慣れていません。

2 つのリスト (両方の文字列) をマージし、それに応じて Python で結合するにはどうすればよいですか?

次の入力があるとします。

lista=['1','2','3']
listb=['a','b','c']

次の出力が必要です。

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

4 に答える 4

10

実際に文字列を使用するつもりだったと仮定すると、これはうまくいくはずです:

>>> lista=[1,2,3]
>>> listb=['a','b','c']
>>> ["%s|%s" % (a,b) for a,b in zip(lista, listb)]
['1|a', '2|b', '3|c']
于 2012-04-11T19:39:46.897 に答える
3

これは、両方のリストに文字列が含まれている場合にのみ機能します。それ以外の場合は、フォーマット文字列ソリューションの 1 つを使用します (例: %s|%s)。

map('|'.join, zip(lista, listb))
于 2012-04-11T19:45:30.383 に答える
2

リスト内包表記は一般的に読みやすいですが、結合操作は、このスケールを任意の数のリストに対してうまくスケーリングするための最も良い方法であり、読みやすいため、他の回答のこの融合も提示します。

>>>lista=['1','2','3']
>>>listb=['a','b','c']
>>>["|".join(items) for items in zip(lista, listb)]
['1|a', '2|b', '3|c']
于 2012-04-11T20:15:41.473 に答える
1

おそらくもっとエレガントなものがあるでしょう

map(lambda(x,y): "%s|%s" % (x,y), zip(lista, listb))
于 2012-04-11T19:40:20.567 に答える