具有重复奇数的整数列表

时间:2012-12-01 18:30:51

标签: python

给出0N个连续整数的列表,其中N是偶数,例如A = [0 , 1 , 2 , 3 , 4]我正在寻找列表理解,即[a for a in A]类型,用于创建另一个列表B = [0 , 1 , 1 , 2 , 3 , 3 , 4],重复输入列表中的奇数A

2 个答案:

答案 0 :(得分:5)

这是一个(有点难看)解决方案,列表理解:

a = range(5)
list(itertools.chain(*[[x, x] if x % 2 == 1 else [x] for x in a]))
# => [0, 1, 1, 2, 3, 3, 4]

列表推导构建了一个子列表列表:

[[x, x] if x % 2 == 1 else [x] for x in a] # => [[0], [1, 1], [2], [3, 3], [4]]

itertools.chain调用只是Python中flatten a list的众多方法之一。

答案 1 :(得分:1)

itertools.chain(*[[i] * (i % 2 + 1) for i in xrange(N + 1)])