Pythonstring和整数串联

我想在for循环中使用附加的整数创buildstring。 喜欢这个:

for i in range(1,11): string="string"+i 

但是它返回一个错误:

 TypeError: unsupported operand type(s) for +: 'int' and 'str' 

什么是连接string和整数的最佳方式?

注意:

在这个答案中使用的方法(反引号)在Python 2的更高版本中被弃用,并在Python 3中被移除。改用str()函数。


您可以使用 :

 string = 'string' for i in range(11): string +=`i` print string 

它会打印string012345678910

要得到string0, string1 ..... string10你可以使用这个@YOUbuild议

 >>> string = "string" >>> [string+`i` for i in range(11)] 

根据Python3更新

您可以使用 :

 string = 'string' for i in range(11): string +=str(i) print string 

它会打印string012345678910

要得到string0, string1 ..... string10你可以使用这个@YOUbuild议

 >>> string = "string" >>> [string+str(i) for i in range(11)] 
 for i in range (1,10): string="string"+str(i) 

要得到string0, string1 ..... string10 ,你可以这样做

 >>> ["string"+str(i) for i in range(11)] ['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9', 'string10'] 
 string = 'string%d' % (i,) 
 for i in range[1,10]: string = "string" + str(i) 

str(i)函数将整数转换为一个string。

 for i in range(11): string = "string{0}".format(i) 

你做了什么( range[1,10] )是

  • 由于括号表示列表的索引( a[3] )或片段( a[3:5] ),
  • 一个SyntaxError,因为[1,10]是无效的,而
  • 因为range(1,10)[1, 2, 3, 4, 5, 6, 7, 8, 9] ,所以你似乎想要[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

string = "string" + i是一个TypeError,因为你不能添加一个整数string(不像JavaScript)。

看看Python的新string格式化方法的文档,它是非常强大的。

你可以使用一个发生器来做到这一点!

 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))+']' 

如果我们想输出像'string0123456789'那么我们可以使用map function和string的join方法。

 >>> 'string'+"".join(map(str,xrange(10))) 'string0123456789' 

如果我们想要string值列表,然后使用list comprehension方法。

 >>> ['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()

我做了别的。 我想replace列表中包含短语的单词。 我想用一个新的单词replace那个sttring / word,这个单词将会是string和数字之间的连接,而这个数字/数字将指出短语/子列表/列表的列表的位置。

也就是说,我用一个string和一个增量数字replace了一个string。

  myoldlist_1=[[' myoldword'],[''],['tttt myoldword'],['jjjj ddmyoldwordd']] No_ofposition=[] mynewlist_2=[] for i in xrange(0,4,1): mynewlist_2.append([x.replace('myoldword', "%s" % i+"_mynewword") for x in myoldlist_1[i]]) if len(mynewlist_2[i])>0: No_ofposition.append(i) mynewlist_2 No_ofposition 

string和整数的连接是简单的:只是使用

 abhishek'+str(2)'