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?

315voto

HINWEIS:

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


Sie können verwenden:

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

Es wird gedruckt string012345678910 .

Um die string0, string1 ..... string10 können Sie dies verwenden als Sie haben vorgeschlagen :

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

Für Python 3

Sie können verwenden:

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

Es wird gedruckt string012345678910 .

Um die string0, string1 ..... string10 können Sie dies verwenden als Sie haben vorgeschlagen :

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

278voto

YOU Punkte 113320
for i in range (1,10):
    string="string"+str(i)

Um die string0, string1 ..... string10 könnten Sie wie folgt vorgehen

>>> ["string"+str(i) for i in range(11)]
['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9', 'string10']

40voto

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

En str(i) wandelt die Ganzzahl in eine Zeichenkette um.

36voto

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

23voto

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

Sie haben ( range[1,10] ) :

  • ein TypeError, da Klammern einen Index bezeichnen ( a[3] ) oder ein Slice ( a[3:5] ) einer Liste,
  • ein SyntaxFehler, da [1,10] ist ungültig, und
  • ein doppelter Fehler, da range(1,10) es [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]

Et string = "string" + i ist ein TypeError, da man (im Gegensatz zu JavaScript) keine Ganzzahl zu einer Zeichenkette hinzufügen kann.

Sehen Sie sich die Dokumentation für Pythons neue Methode zur String-Formatierung . Er ist sehr leistungsfähig.

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