了解しましたstr.join()
:
>>> '|'.join(['1','2','3'])
'1|2|3'
リストを出力するものはありますか?出力する関数はありますか:
['1', '|', '2','|', '3']
つまり、str.join()
for リスト? (または他のイテラブル?)
list('|'.join(['1','2','3']))
文字のリストを操作している場合は、トリックを実行する必要があります。
すべてのオブジェクトで機能する、より一般的なソリューションは次のとおりです。
from itertools import izip_longest, chain
def intersperse(myiter, value):
return list(
chain.from_iterable(izip_longest(myiter, [], fillvalue=value))
)[:-1]
この関数の組み込み/標準ライブラリ バージョンについては知りません。
実際に:
print intersperse([1,2,3], '|')
出力:
[1, '|', 2, '|', 3]
これはどう?
>>> list('|'.join(['1','2','3']))
['1', '|', '2', '|', '3']
a = [1, 2, 'str', 'foo']
print [x for y in a for x in y, '|'][:-1]
# [1, '|', 2, '|', 'str', '|', 'foo']
一般的なケースでは、roundrobin
itertools レシピを検討してください
この単純なジェネレーターは、リストの作成を回避します (より速く、メモリを節約します)。
def intersperse(iterable, element):
iterable = iter(iterable)
yield next(iterable)
while True:
next_from_iterable = next(iterable)
yield element
yield next_from_iterable
例:
>>> list(intersperse(['1', '2', '3'], '|'))
['1', '|', '2', '|', '3']