我想在for循环中使用一个整数来创建一个字符串。是这样的:
for i in range(1, 11):
string = "string" + i
但是它会返回一个错误:
不支持'int'和'str'的操作数类型
连接字符串和整数的最佳方法是什么?
我想在for循环中使用一个整数来创建一个字符串。是这样的:
for i in range(1, 11):
string = "string" + i
但是它会返回一个错误:
不支持'int'和'str'的操作数类型
连接字符串和整数的最佳方法是什么?
当前回答
如果我们想要像'string0123456789'这样的输出,那么我们可以使用string的map函数和join方法。
>>> 'string' + "".join(map(str, xrange(10)))
'string0123456789'
如果我们想要一个字符串值的列表,那么使用列表理解方法。
>>> ['string'+i for i in map(str,xrange(10))]
['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9']
注意:
对于Python 2.x使用xrange()。
对于Python 3.x使用range()。
其他回答
您可以使用生成器来完成此操作!
def sequence_generator(limit):
""" A generator to create strings of pattern -> string1,string2..stringN """
inc = 0
while inc < limit:
yield 'string' + str(inc)
inc += 1
# To generate a generator. Notice I have used () instead of []
a_generator = (s for s in sequence_generator(10))
# To generate a list
a_list = [s for s in sequence_generator(10)]
# To generate a string
a_string = '['+ ", ".join(s for s in sequence_generator(10)) + ']'
string = 'string%d' % (i,)
for i in range[1,10]:
string = "string" + str(i)
函数的作用是:将整数转换为字符串。
如果我们想要像'string0123456789'这样的输出,那么我们可以使用string的map函数和join方法。
>>> 'string' + "".join(map(str, xrange(10)))
'string0123456789'
如果我们想要一个字符串值的列表,那么使用列表理解方法。
>>> ['string'+i for i in map(str,xrange(10))]
['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9']
注意:
对于Python 2.x使用xrange()。
对于Python 3.x使用range()。
注意:
此答案中使用的方法(反勾号)在Python 2的后续版本中已弃用,并在Python 3中被删除。请改用str()函数。
你可以使用:
string = 'string'
for i in range(11):
string +=`i`
print string
它将输出string012345678910。
要获得string0,请输入string1 .....你可以使用你建议的字符串:
>>> string = "string"
>>> [string+`i` for i in range(11)]
对于Python 3
你可以使用:
string = 'string'
for i in range(11):
string += str(i)
print string
它将输出string012345678910。
要获得string0,请输入string1 .....string10,你可以使用你建议的:
>>> string = "string"
>>> [string+str(i) for i in range(11)]