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