从bc到bc的python列表转换
我想将列表[“a”、“B”、“C”]转换为新列表[“a”、“a”、“B”、“B”、“C”、“C”]。我可以想出一个丑陋的循环方法,但是有没有一行呢?我会用itertools.repeat从bc到bc的python列表转换,python,Python,我想将列表[“a”、“B”、“C”]转换为新列表[“a”、“a”、“B”、“B”、“C”、“C”]。我可以想出一个丑陋的循环方法,但是有没有一行呢?我会用itertools.repeat import itertools n= 2 print([repetition for i in range(10) for repetition in itertools.repeat(i,n) ]) 输出 [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6,
import itertools
n= 2
print([repetition for i in range(10)
for repetition in itertools.repeat(i,n) ])
输出
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9]
['A', 'A', 'B', 'B', 'C', 'C']
用itertools进行列表连接怎么样
import itertools
a = ["A", "B", "C"]
c = list(itertools.chain(*[ 2*x for x in a] ))
print(c)
输出
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9]
['A', 'A', 'B', 'B', 'C', 'C']
始终可以用变量替换2
- 您可以将
与zip一起使用,以获得所需的结果itertools.chain
l=[1,2,3]
列表(链从(zip(l,l)))
输出:
[1,1,2,2,3,3]
如果您已经在做两个循环,则不需要
itertools。重复,只需使用[i for i in original\u input for u in range(n)]