代码之家  ›  专栏  ›  技术社区  ›  michele

Python字符串和整数串联[重复]

  •  300
  • michele  · 技术社区  · 16 年前

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

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

    但它返回一个错误:

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

    9 回复  |  直到 9 年前
        1
  •  284
  •   Community Mohan Dere    6 年前

    注:

    str() 而不是功能。


    您可以使用:

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

    string012345678910 .

    得到 string0, string1 ..... string10 你可以按照你的建议使用这个

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

    根据Python3更新

    您可以使用:

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

    它会打印出来 字符串012345678910

    得到 字符串0,字符串1。。。。。字符串10 你可以按照你的建议使用这个

    >>> string = "string"
    >>> [string+str(i) for i in range(11)]
    
        2
  •  269
  •   YOU    16 年前
    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']
    
        3
  •  36
  •   Eric Leschinski Mr. Napik    12 年前
    for i in range[1,10]: 
      string = "string" + str(i)
    

    这个 str(i)

        4
  •  35
  •   Ignacio Vazquez-Abrams    16 年前
    string = 'string%d' % (i,)
    
        5
  •  21
  •   Tim Pietzcker    16 年前
    for i in range(11):
        string = "string{0}".format(i)
    

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

    • 一个类型错误,因为括号表示索引( a[3] )或者一片( a[3:5] )一份清单,
    • [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 是一个类型错误,因为不能向字符串中添加整数(与JavaScript不同)。

    Python's new string formatting method ,非常强大。

        6
  •  4
  •   Chaithanya Kumar chaithu    11 年前

    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))+']'
    
        7
  •  1
  •   Vivek Sable    11 年前

    如果我们想要像这样的输出 'string0123456789' map function join 字符串的方法。

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

    如果需要字符串值列表,请使用 list comprehension 方法。

    >>> ['string'+i for i in map(str,xrange(10))]
    ['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9']
    

    注:

    xrange() 对于Python 2.x

    使用 range()

        8
  •  1
  •   Elias EstatisticsEU    10 年前

    我做了别的事。 我想用一个新词替换sttring/word,这个新词将连接字符串和数字,数字/数字将指示短语/子列表/列表列表的位置。

    也就是说,我用一个字符串替换了一个字符串,然后是一个递增的数字。

        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
    
        9
  •  -6
  •   Jemshit    8 年前

    字符串和整数的串联很简单:

    abhishek+str(2)