Wie fügt man mehrere Elemente in einer Zeile in Python an
Habe ich:
count = 0
i = 0
while count < len(mylist):
if mylist[i + 1] == mylist[i + 13] and mylist[i + 2] == mylist[i + 14]:
print mylist[i + 1], mylist[i + 2]
newlist.append(mylist[i + 1])
newlist.append(mylist[i + 2])
newlist.append(mylist[i + 7])
newlist.append(mylist[i + 8])
newlist.append(mylist[i + 9])
newlist.append(mylist[i + 10])
newlist.append(mylist[i + 13])
newlist.append(mylist[i + 14])
newlist.append(mylist[i + 19])
newlist.append(mylist[i + 20])
newlist.append(mylist[i + 21])
newlist.append(mylist[i + 22])
count = count + 1
i = i + 12
Ich wollte die newlist.append()
Aussagen in ein paar Erklärungen.
Kommentar zu dem Problem - Öffnen
Gut ist es natürlich nicht das gleiche, wenn Sie unterschiedliche Ergebnisse erhalten.
Das ist ungültige syntax.
Vorausgesetzt, Ihre Objekte gemeint sind, zu Listen, die Ihr code ist nicht gültig Python, wie Sie mit Hilfe von
[]
statt ()
. Bitte postet wirklich funktionierende code. InformationsquelleAutor der Frage whatever | 2013-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. Die Methode zum Anhängen einer kompletten Sequenz ist
list.extend()
.InformationsquelleAutor der Antwort Ignacio Vazquez-Abrams
Nicht.
First off,
append
ist eine Funktion, so dass Sie nicht schreiben könnenappend[i+1:i+4]
weil Sie versuchen, sich ein Stück von einer Sache, der nicht in einer Sequenz. (Man kann nicht ein element, entweder:append[i+1]
falsch ist, aus demselben Grund.) Wenn Sie eine Funktion aufrufen, das argument geht in Klammern, d.h. die Runde:()
.Sekunde, was Sie versuchen zu tun, ist "nehmen Sie eine Sequenz, und legen Sie jedes element in der es am Ende der anderen Sequenz, in der original-Reihenfolge". Das schreibt
extend
.append
"nehmen Sie das Ding und setzen es an das Ende der Liste, als ein einzelnes Element, auch wenn es auch eine Liste". (Daran erinnern, dass eine Liste ist eine Art von Sequenz.)Aber dann, müssen Sie sich bewusst sein, dass
i+1:i+4
ist ein spezielles Konstrukt, das erscheint nur innerhalb von eckigen Klammern (um eine Scheibe aus einer Sequenz) und Klammern (zum erstellen vondict
Objekt). Sie können nicht übergeben Sie es an eine Funktion. So können Sie nichtextend
. Sie brauchen, um eine Reihenfolge der Werte, und der Natürliche Weg, dies zu tun ist mit derrange
Funktion.InformationsquelleAutor der Antwort Karl Knechtel
Könnten Sie auch:
InformationsquelleAutor der Antwort Kevin Postlewaite