我正在尝试将一个值插入列表中
interleave(1, ['A', 'B', 'C']) -> [1, 'A', 1, 'B', 1, 'C']
有很多方法可以解决这个问题,但我认为more_itertools.interleave是最可读的。然而,要使用这个函数,我需要创建一个永远产生1
的生成器。显然,这可以通过
def gen1():
while True:
yield 1
但这感觉比必要的更复杂
是否有一种优雅的方法来替换下面代码段中的...
以创建一个内联生成器,从而
res = more_itertools.interleave(..., ['A', 'B', 'C'])
assert list(res) == [1, 'A', 1, 'B', 1, 'C']
... = (1 for _ in ['A', 'B', 'C'])
显然有效,但我不会说它优雅
^{} 。我不知道
interleave
是如何实现的,但您可以对chain
和zip
执行相同的操作:印刷品
您还可以使用如下列表:
因此
interleave(1, ['A', 'B', 'C'])
返回:相关问题 更多 >
编程相关推荐