在列表的每个元素之前插入元素

Juk*_*rpa 5 python list-comprehension list python-3.x

我想在列表的每个现有元素之前插入一个常量元素,即来自:

['foo', 'bar', 'baz']
Run Code Online (Sandbox Code Playgroud)

至:

['a', 'foo', 'a', 'bar', 'a', 'baz']
Run Code Online (Sandbox Code Playgroud)

我尝试过使用列表推导,但我能做到的最好的事情就是使用这个语句的数组数组:

[['a', elt] for elt in stuff]
Run Code Online (Sandbox Code Playgroud)

结果如下:

[['a', 'foo'], ['a', 'bar'], ['a', 'baz']]
Run Code Online (Sandbox Code Playgroud)

所以不完全是我想要的.可以使用列表理解来实现吗?万一重要,我使用的是Python 3.5.

Mar*_*ers 10

添加另一个循环:

[v for elt in stuff for v in ('a', elt)]
Run Code Online (Sandbox Code Playgroud)

或者itertools.chain.from_iterable()与您一起使用zip(),itertools.repeat()如果您需要可迭代版本而不是完整列表:

from itertools import chain, repeat
try:
    # Python 3 version (itertools.izip)
    from future_builtins import zip
except ImportError:
    # No import needed in Python 3

it = chain.from_iterable(zip(repeat('a'), stuff))
Run Code Online (Sandbox Code Playgroud)