dan*_*ast 3 python list-comprehension
这一点很清楚:
a = ['a', 'b', 'c']
x = [v for v in a]
Run Code Online (Sandbox Code Playgroud)
但我不知道该怎么做:
sep = 5
# ??? y = [v + sep for v in a]
print y # expected ['a', 5, 'b', 5, 'c', 5]
Run Code Online (Sandbox Code Playgroud)
如何编写每个源元素包含多个元素的列表推导?
我对此代码的优化不感兴趣:请不要在这些代码中引用[:]运算符或join方法或其他内容.我的代码需要列表理解.我目前唯一的替代方案是4线for循环,不方便:
y = []
for v in a:
y.append(v)
y.append(sep)
Run Code Online (Sandbox Code Playgroud)
运用 嵌套 列表理解:
>>> a = ['a','b','c']
>>> [item for x in a for item in (x, 5)]
['a', 5, 'b', 5, 'c', 5]
Run Code Online (Sandbox Code Playgroud)
你可以建立一个list的tuples第一,然后使用扁平结果列表itertools.chain.from_iterable:
>>> sep = 5
>>> a = ['a', 'b', 'c']
>>>
>>> import itertools
>>> list(itertools.chain.from_iterable((elem, sep) for elem in a))
['a', 5, 'b', 5, 'c', 5]
Run Code Online (Sandbox Code Playgroud)