在Python中创建具有重复值的整数列表

coo*_*ron 6 python integer list python-2.7

对于Python 2.7专家(或发烧友)来说,这个问题无疑是一块蛋糕,所以在这里.

如何创建一个整数列表,其值的重复性与它的原始值相似?

a = list([0, 0, 1, 1, 2, 2, 3, 3, 4, 4])
Run Code Online (Sandbox Code Playgroud)

这样做真的很容易:

for i in range(10): a.append(int(i / 2))
Run Code Online (Sandbox Code Playgroud)

但我宁愿在一个简单的行中开始a = 期望的输出.

感谢您抽出宝贵时间回答.

PS.没有任何" 可能已经有你的答案的问题是我正在寻找的.

Vla*_*lad 11

>>> [i//2 for i in xrange(10)]
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4]
Run Code Online (Sandbox Code Playgroud)

一个简单的通用方法:

>>> f = lambda rep, src: reduce(lambda l, e: l+rep*[e], src, [])
>>> f(2, xrange(5))
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4]
>>> f(3, ['a', 'b'])
['a', 'a', 'a', 'b', 'b', 'b']
Run Code Online (Sandbox Code Playgroud)

  • 2.7和3.0都不能只使用`i // 2`? (2认同)