列表中是否有str.join()?

pou*_*def 4 python list

我明白了str.join():

>>> '|'.join(['1','2','3'])
'1|2|3'
Run Code Online (Sandbox Code Playgroud)

是否有输出清单的东西?是否有输出的功能:

['1', '|', '2','|', '3']
Run Code Online (Sandbox Code Playgroud)

那是一个str.join()列表吗?(或任何其他可迭代?)

Ada*_*ner 5

list('|'.join(['1','2','3']))
Run Code Online (Sandbox Code Playgroud)

你应该在你使用字符列表时做的伎俩.

适用于所有对象的更通用的解决方案是:

from itertools import izip_longest, chain

def intersperse(myiter, value):
    return list(
        chain.from_iterable(izip_longest(myiter, [], fillvalue=value))
    )[:-1]
Run Code Online (Sandbox Code Playgroud)

我不知道这个函数的内置/ std库版本.

在行动:

print intersperse([1,2,3], '|')
Run Code Online (Sandbox Code Playgroud)

输出:

[1, '|', 2, '|', 3]
Run Code Online (Sandbox Code Playgroud)

  • 我认为,而不是``zip_longest()``,更清晰的选择是使用[``itertools.repeat()``](http://docs.python.org/3/library/itertools.html#itertools .repeat) - ``list(chain.from_iterable(zip(myiter,repeat(value))))[: - 1]`` (2认同)