1

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

4

2 回答 2

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中展平列表的众多方法之一。

于 2012-12-01T18:43:06.713 回答
1
itertools.chain(*[[i] * (i % 2 + 1) for i in xrange(N + 1)])
于 2012-12-01T18:52:57.230 回答