列表理解按元素值在列表中重复元素

2024-05-15 21:09:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我不太清楚实现这一点的代码,有类似的帖子:Repeating elements in list comprehension

但是我想用列表中的值来重复列表中的值

In [219]:

l = [3,1]

[i for x in range(i) for i in l]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-219-84d6f25dfd96> in <module>()
      1 l = [3,1]
      2 
----> 3 [i for x in range(i) for i in l]

TypeError: 'tuple' object cannot be interpreted as an integer

我想要的是这样的列表:

^{pr2}$

也可以有人解释错误。在

注意,我在这里运行的是python3.3


Tags: 代码inmost列表forrangeelements帖子
2条回答
[x for x in l for _ in range(x)]
# Out[5]: [3, 3, 3, 1]

但我更喜欢itertools中更详细、更严格的函数:

^{pr2}$

另一个解决方案。在

l = [3,1]

ll = reduce(lambda a, b: a + [b] * b, l, [])

print ll

相关问题 更多 >