我有最简单的代码来创建带整数的字符串:
x = []
for i in range(6):
x.append('a' + str(i))
,女巫创造了这个输出:
['a0', 'a1', 'a2', 'a3', 'a4', 'a5']
但是,如何以这种形式创建列表的条件如下:
['a0', 'a0', 'a1', 'a1', 'a2', 'a2']
我试过这种方式:
x = []
for i in range(6):
if i%2==0:
x.append('a' + str(i))
else:
x.append('a' + str(i-1))
但这['a0', 'a0', 'a2', 'a2', 'a4', 'a4']
远非我所需要的。
答案 0 :(得分:3)
这种理解使用了整数除法:
x = ['a' + str(i//2) for i in range(6)]
它也可以创建奇数长度的列表; - )
答案 1 :(得分:2)
x = []
for i in range(3):
x.append('a' + str(i))
x.append('a' + str(i))
输出
['a0', 'a0', 'a1', 'a1', 'a2', 'a2']
答案 2 :(得分:2)
其他答案中描述的复制代码效果很好。
其他有趣的选项包括:
x = []
for i in range(6 * 2):
x.append('a' + str(i // 2))
# list comprehension, expect better performance with this
x = ['a' + str(i//2) for i in range(6 * 2)]
# if you have numpy
import numpy as np
temp = ['a' + str(i) for i in range(6)]
x = np.array(temp).repeat(2)