我正在尝试创建一个列表,该列表由一个重复出现的字符串和一个数字填充,该数字标记了一行中的哪一个。标记将有多少字符串的数字是从 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
如果有人有想法,我将不胜感激。
你几乎明白了:
for i in a:
c.append('Adi_' + str(i))
您的第一行是将整个列表a
转换为字符串。
请注意,您可以使用列表理解和一些字符串格式来摆脱循环:
c = ['Adi_%s' % s for s in a]
或
c = ['Adi_{0}'.format(s) for s in a] #Python >= 2.6
或者作为列表理解:
b = 5
a = range(2, b + 1)
c = ["Adi_" + str(i) for i in a]
使用列表推导:
b = 5
a = range(2, b + 1)
c = ['Adi_'+str(i) for i in a]
for x in c:
print"Welcome {0}".format(x)
或者全部在一行上:
>>> for s in ['Welcome Adi_%d' % i for i in range(2,6)]:
... print s
...
Welcome Adi_2
Welcome Adi_3
Welcome Adi_4
Welcome Adi_5