具有相同前缀

时间:2017-11-16 16:53:25

标签: python

我有最简单的代码来创建带整数的字符串:

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']远非我所需要的。

3 个答案:

答案 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)