重复列表的元素 n 次

新手上路,请多包涵

如何重复列表中的每个元素 n 次并形成一个新列表?例如:

 x = [1,2,3,4]
n = 3

x1 = [1,1,1,2,2,2,3,3,3,4,4,4]

x * n 不起作用

for i in x[i]:
    x1 = n * x[i]

必须有一个简单而聪明的方法。

原文由 user3720101 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 315
2 个回答

如果你真的想要结果作为列表,而生成器是不够的:

 import itertools
lst = range(1,5)
list(itertools.chain.from_iterable(itertools.repeat(x, 3) for x in lst))

Out[8]: [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]

原文由 m.wasowski 发布,翻译遵循 CC BY-SA 3.0 许可协议

理想的方式可能是 numpy.repeat

 In [16]:

x1=[1,2,3,4]
In [17]:

np.repeat(x1,3)
Out[17]:
array([1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4])

原文由 CT Zhu 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏