首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个Python列表,一遍又一遍地填充相同的字符串和一个根据变量递增的数字。

创建一个Python列表,一遍又一遍地填充相同的字符串和一个根据变量递增的数字。
EN

Stack Overflow用户
提问于 2012-09-27 20:05:42
回答 4查看 14.4K关注 0票数 8

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

所以就像这样:

代码语言:javascript
复制
b = 5
a = range(2, b + 1)
c = []
c.append('Adi_' + str(a))

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

代码语言:javascript
复制
c = ['Adi_2', 'Adi_3', 'Adi_4', 'Adi_5']

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

代码语言:javascript
复制
c = ['Adi_[2, 3, 4, 5]']

因此,当我尝试在新的行中打印它时

代码语言:javascript
复制
for x in c:
    print"Welcome {0}".format(x)

这样做的结果是:

代码语言:javascript
复制
Welcome Adi_[2, 3, 4, 5]

我想要的结果是:

代码语言:javascript
复制
Welcome Adi_2
Welcome Adi_3
Welcome Adi_4
Welcome Adi_5

如果有人有想法,我将不胜感激。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-27 20:07:40

你差一点就明白了:

代码语言:javascript
复制
for i in a:
    c.append('Adi_' + str(i))

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

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

代码语言:javascript
复制
c = ['Adi_%s' % s for s in a] 

代码语言:javascript
复制
c = ['Adi_{0}'.format(s) for s in a] #Python >= 2.6
票数 12
EN

Stack Overflow用户

发布于 2012-09-27 20:13:15

使用列表理解:

代码语言:javascript
复制
b = 5
a = range(2, b + 1)
c = ['Adi_'+str(i) for i in a]
for x in c:
    print"Welcome {0}".format(x)
票数 1
EN

Stack Overflow用户

发布于 2012-09-27 20:12:31

或者作为一种列表理解:

代码语言:javascript
复制
b = 5
a = range(2, b + 1)
c = ["Adi_" + str(i) for i in a]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12620974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档