使用列表推导按两两组合构建列表的列表
我正在使用以下代码来创建一个列表的列表:
res = []
for i in I:
res.append(x)
res.append(y[i])
所以我最终得到的列表是 [x, y[0], x, y[1],...]
,其中 x
和 y[i]
也是列表。
有没有办法用列表推导式来构建这个列表,而不是使用for循环呢?
6 个回答
2
res = reduce(tuple.__add__, [(x, y[i]) for i in I])
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。
2
Itertools 是一个可以帮助处理这类问题的工具:
>>> y = I = range(5)
>>> x = 'x'
>>> res = list(itertools.chain.from_iterable((x, y[i]) for i in I))
>>> res
['x', 0, 'x', 1, 'x', 2, 'x', 3, 'x', 4]
2
我觉得这可能接近你想要的东西:
res = [z for z in ((x, y[i]) for i in I)]