396 Stimmen

Python Zeichenketten und Ganzzahlverkettung

Ich möchte eine Zeichenkette mit einer angehängten Ganzzahl erstellen, in einer für Schleife. Etwa so:

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

Es wird jedoch ein Fehler zurückgegeben:

TypeError: Nicht unterstützte(r) Operandentyp(en) für +: 'int' und 'str'

Wie lassen sich die Zeichenkette und die ganze Zahl am besten verknüpfen?

5voto

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

2voto

Vivek Sable Punkte 9186

Wenn wir eine Ausgabe wie 'string0123456789' dann können wir die Karte Funktion und beitreten Methode der String .

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

Wenn wir eine Liste von Zeichenkettenwerten, dann verwenden Sie die Listenverstehen Methode.

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

Anmerkung:

Utilice xrange() für Python 2.x.

Utilice Bereich() für Python 3.x.

2voto

Ich habe etwas anderes gemacht.

Ich wollte in Listen von Listen, die Phrasen enthalten, ein Wort ersetzen.

Ich wollte diese Zeichenkette / dieses Wort durch ein neues Wort ersetzen, das eine Verbindung zwischen Zeichenkette und Zahl ist, und diese Zahl / Ziffer gibt die Position der Phrase / Unterliste / Listen von Listen an.

Das heißt, ich habe eine Zeichenfolge durch eine Zeichenfolge und eine darauf folgende inkrementelle Zahl ersetzt.

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

-5voto

Hiro Punkte 2774

Die Verkettung einer Zeichenkette und einer Ganzzahl ist einfach: Verwenden Sie einfach

abhishek+str(2)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X