Python: < nicht unterstützt, zwischen str und int

Lerne ich Python durch Automatisieren Sie die Langweilige Sachen und ich bin in einer etwas, was ich nicht ganz verstehen.

Ich versuche, erstellen Sie eine einfache for-Schleife, die Drucke, die Elemente einer Liste in diesem format: W, X, Y, and Z.

Mein code sieht wie folgt aus:

spam = ['apples', 'bananas', 'tofu', 'cats']

def printSpam(item):
    for i in item:
        if i < len(item)-1:
            print (','.join(str(item[i])))
        else:
            print ("and ".join(str(item[len(item)-1])))
    return

printSpam(spam)

Bekomme ich diesen Fehler in der Antwort:

Traceback (most recent call last):
  File "CH4_ListFunction.py", line 11, in <module>
    printSpam(spam)
  File "CH4_ListFunction.py", line 5, in printSpam
    if i < len(item)-1:
TypeError: '<' not supported between instances of 'str' and 'int'

Jede Hilfe ist willkommen. Danke für die Hilfe ein newbie.

  • Sie sind Missverständnis, wie for ... in ... funktioniert. i ist bereits die Zeichenfolge aus der Liste, nicht der index, so < ist vergleichen von strings und ganzen zahlen, und item[i] macht keinen Sinn, entweder. Auch versuchen Sie zu join einen einzigen Punkt!
  • Sie sind im Grunde tut "s" < 4. Das macht keinen Sinn.
  • In diesem Fall i ist ein string. Sie versuchen, eine Zeichenfolge vergleichen, um die Länge einer Liste.
  • Anstatt einer Schleife, die Sie verwenden können, Liste Scheiben wie item[0:-1] alle zu erhalten, aber das Letzte Element, und item[-1] um das Letzte Element. Nehmen Sie den ersten Satz mit ,, und dann verbinden Sie dieses mit and bis zum letzten.
  • argh, Sie hat mich geschlagen, während ich war zu beantworten 🙂
Schreibe einen Kommentar