Python String和Integer连接

时间:2010-05-17 07:52:06

标签: python string integer concatenation

我想在for循环中使用附加到它的整数创建字符串。像这样:

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

但它返回错误:

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

连接字符串和整数的最佳方法是什么?

9 个答案:

答案 0 :(得分:260)

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

答案 1 :(得分:221)

注意:

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


您可以使用:

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

它会打印string012345678910

要获得string0, string1 ..... string10,您可以将其用作@YOU建议

>>> 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,您可以将其用作@YOU建议

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

答案 2 :(得分:34)

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

str(i)函数将整数转换为字符串。

答案 3 :(得分:33)

string = 'string%d' % (i,)

答案 4 :(得分:18)

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

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

  • 一个TypeError,因为括号表示列表的索引(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,因为你不能在字符串中添加一个整数(与JavaScript不同)。

查看Python's new string formatting method的文档,它非常强大。

答案 5 :(得分:4)

您可以使用生成器执行此操作!

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

答案 6 :(得分:1)

如果我们想要'string0123456789'之类的输出,那么我们可以使用map functionjoin字符串方法。

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

如果我们想要字符串值List,那么使用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()

答案 7 :(得分:1)

我做了别的事。 我想替换包含短语的列表中的单词。 我想用一个新单词替换该字符串/单词,该单词将是字符串和数字之间的连接,该数字/数字将指示短语/子列表/列表列表的位置。

也就是说,我用一个字符串替换了一个字符串,后面跟着一个增量号码。

    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

答案 8 :(得分:-6)

字符串和整数的连接很简单: 只需使用

abhishek+str(2)