私はPythonに少し慣れていません。
2 つのリスト (両方の文字列) をマージし、それに応じて Python で結合するにはどうすればよいですか?
次の入力があるとします。
lista=['1','2','3']
listb=['a','b','c']
次の出力が必要です。
['1|a','2|b','3|c']
実際に文字列を使用するつもりだったと仮定すると、これはうまくいくはずです:
>>> 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']
これは、両方のリストに文字列が含まれている場合にのみ機能します。それ以外の場合は、フォーマット文字列ソリューションの 1 つを使用します (例: %s|%s
)。
map('|'.join, zip(lista, listb))
リスト内包表記は一般的に読みやすいですが、結合操作は、このスケールを任意の数のリストに対してうまくスケーリングするための最も良い方法であり、読みやすいため、他の回答のこの融合も提示します。
>>>lista=['1','2','3']
>>>listb=['a','b','c']
>>>["|".join(items) for items in zip(lista, listb)]
['1|a', '2|b', '3|c']
おそらくもっとエレガントなものがあるでしょう
map(lambda(x,y): "%s|%s" % (x,y), zip(lista, listb))