Python-String und Integer-Verkettung [doppelte]

Diese Frage hat hier schon eine Antwort:

  • Einen String aus einem String und einer Ganzzahl in Python 5 Antworten zu machen

Ich möchte String mit Integer anfügen, die an sie angehängt wird, in einer for-Schleife. So was:

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

Aber es gibt einen Fehler:

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

Was ist der beste Weg, um String und Integer zu verketten?

  • Behandle entweder eine Liste oder eine einzelne Integer als Argument
  • Python 2.7 und 3.3.2, warum int ('0.0') funktioniert nicht?
  • Python-Klasse mit Integer-Emulation
  • Python - Umwandlung einer Zeichenfolge in eine Liste von int
  • Pack 4 Byte ganze Zahlen in Bytearray oder Array
  • Liste mit mehreren Bedingungen
  • 9 Solutions collect form web for “Python-String und Integer-Verkettung [doppelte]”

    HINWEIS:

    Die in dieser Antwort verwendete Methode (Backticks) wird in späteren Versionen von Python 2 veraltet und in Python 3 entfernt. Verwenden Sie stattdessen die str() Funktion.


    Sie können:

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

    Es wird gedruckt string012345678910 .

    Um string0, string1 ..... string10 zu erhalten string0, string1 ..... string10 du das als @YOU vorschlagen

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

    Update nach Python3

    Sie können:

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

    Es wird gedruckt string012345678910 .

    Um string0, string1 ..... string10 zu erhalten string0, string1 ..... string10 du das als @YOU vorschlagen

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

    Um string0, string1 ..... string10 zu erhalten string0, string1 ..... string10 du auch tun

     >>> ["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) 

    Die str(i) -Funktion wandelt die Ganzzahl in einen String um.

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

    Was du getan hast ( range[1,10] ) ist

    • A TypeError da Klammern einen Index ( a[3] ) oder ein Slice ( a[3:5] ) einer Liste angeben,
    • Ein SyntaxError seit [1,10] ist ungültig und
    • Ein doppelter off-by-one Fehler seit range(1,10) ist [1, 2, 3, 4, 5, 6, 7, 8, 9] , und Sie scheinen zu wollen [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    Und string = "string" + i ist ein TypeError, da du keine Zeichenfolge zu einem String hinzufügen kannst (im Gegensatz zu JavaScript).

    Schauen Sie sich die Dokumentation für Pythons neue String-Formatierungsmethode an , es ist sehr mächtig.

    Sie können dazu einen Generator verwenden!

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

    Wenn wir Ausgabe wie 'string0123456789' wollen 'string0123456789' dann können wir die map function und join Methode der Zeichenfolge verbinden.

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

    Wenn wir die Liste der String-Werte wünschen, dann verwenden Sie die list comprehension .

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

    Hinweis:

    Verwenden Sie xrange() für Python 2.x

    USe range() für Python 3.x

    Ich habe etwas anderes gemacht. Ich wollte ein Wort ersetzen, in Listen aus Listen, die Phrasen enthielten. Ich wollte dieses Stotten / Wort mit einem neuen Wort ersetzen, das eine Verbindung zwischen String und Nummer sein wird, und diese Zahl / Ziffer zeigt die Position der Phrase / Unterliste / Listen der Listen an.

    Das heißt, ich habe einen String mit einem String und einer inkrementellen Zahl ersetzt, die ihm folgt.

      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 

    Die Verkettung eines Strings und einer ganzen Zahl ist einfach

     abhishek'+str(2)' 
    Python ist die beste Programmiersprache der Welt.