Listen / Tupel - Aufzählung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
CodeMaster
User
Beiträge: 22
Registriert: Mittwoch 15. September 2010, 21:37

Hallo!

Ich stehe wieder vor einen Problem:

Ich bekomm es nicht hin Listen Objekte in einen String umzuwandeln, also die einzelnen Namen der Liste ind einem String aufzählen zu lassen.

Mein Code sieht wie folgt aus:

Code: Alles auswählen

def Aufzaehlen(Liste):
    String = "Elemente: "
    for i in range(len(Liste)):
        if i != len(Liste):
            String += Liste[i],", "
        else:
            String += Liste[i]
    print String

Test1 = raw_input("1 ")
Test2 = raw_input("2 ")
Test3 = raw_input("3 ")
Liste = []
Liste.append(Test1)
Liste.append(Test2)
Liste.append(Test3)

Aufzaehlen(Liste)
wie man sieht, ist dieser code nur für einen test ausgelegt
aber dabei erscheint dieser Fehler:

Code: Alles auswählen

Traceback (most recent call last):
  File "D:/Python/Aufzählen", line 18, in <module>
    Aufzaehlen(Liste)
  File "D:/Python/Aufzählen", line 5, in Aufzaehlen
    String += Liste[i],", "
TypeError: cannot concatenate 'str' and 'tuple' objects
Also er sagt mir das ich Listen/Tuples nicht mit String vereinen kann. Aber ich kann doch "print Liste" machen und das geht, also wandelt er die Liste ja doch irgendwie in einen String oder?

Ich hoffe ihr könnt mir helfen =)

MfG CodeMaster
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Hier für gibt es die String Methode ".join(...)".

Beispiel:

Code: Alles auswählen

list_ = ["1","2","3","4","5"]
print("-".join(list_))
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
BlackJack

@CodeMaster: Du versuchst da an eine Zeichekette ein Tupel anzuhängen. Ich mache mal die Klammer, vielleicht wird es Dir dann klarer:

Code: Alles auswählen

String += (Liste[i], ", ")
Oder als Minimalbeispiel:

Code: Alles auswählen

In [65]: a = 'a'

In [66]: a += ('b', 'c')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/home/bj/<ipython console> in <module>()

TypeError: cannot concatenate 'str' and 'tuple' objects
CodeMaster
User
Beiträge: 22
Registriert: Mittwoch 15. September 2010, 21:37

BlackJack hat geschrieben:@CodeMaster: Du versuchst da an eine Zeichekette ein Tupel anzuhängen. Ich mache mal die Klammer, vielleicht wird es Dir dann klarer:

Code: Alles auswählen

String += (Liste[i], ", ")
Oder als Minimalbeispiel:

Code: Alles auswählen

In [65]: a = 'a'

In [66]: a += ('b', 'c')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/home/bj/<ipython console> in <module>()

TypeError: cannot concatenate 'str' and 'tuple' objects


Ahhhh okey mein fehler, jetzt versteh ich es danke
Antworten