创建一个Python列表,该列表一次又一次地填充相同的字符串,并根据变量增加一个数字。

2024-05-20 13:44:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个列表,该列表由一个重复出现的字符串和一个数字填充,该数字标记行中的哪个字符串。标记将有多少字符串的数字是从一个int变量获得的。

所以像这样:

b = 5
a = range(2, b + 1)
c = []
c.append('Adi_' + str(a))

我希望这会创建一个这样的列表:

c = ['Adi_2', 'Adi_3', 'Adi_4', 'Adi_5']

相反,我得到一个这样的列表

c = ['Adi_[2, 3, 4, 5]']

所以当我试着把它打印成新行时

for x in c:
    print"Welcome {0}".format(x)

其结果是:

Welcome Adi_[2, 3, 4, 5]

我想要的结果是:

Welcome Adi_2
Welcome Adi_3
Welcome Adi_4
Welcome Adi_5

如果有人有主意,我会很感激的。


Tags: 字符串in标记format列表forrange数字
3条回答

使用列表理解:

b = 5
a = range(2, b + 1)
c = ['Adi_'+str(i) for i in a]
for x in c:
    print"Welcome {0}".format(x)

或者作为列表理解:

b = 5
a = range(2, b + 1)
c = ["Adi_" + str(i) for i in a]

你差点就搞定了:

for i in a:
    c.append('Adi_' + str(i))

您的第一行是将整个列表a转换为字符串。

注意,您可以通过列表理解和一些string formatting来摆脱循环:

c = ['Adi_%s' % s for s in a] 

或者

c = ['Adi_{0}'.format(s) for s in a] #Python >= 2.6

相关问题 更多 >