Sequenztypen und Multiplikation
[0]*k
Dies bedeutet eine Liste der Größe k
enthält 0
-s. Dies funktioniert für eine beliebige Folge Objekt, zum Beispiel:
"foo"*2
Iteration über eine Liste
die folgende Syntax vor:
for i, value in enumerate(values):
pass
Dies nutzt zwei Eigenschaften von Python. Die erste ist die for
-Syntax, die wie foreach
in einigen anderen Sprachen funktioniert. Zum Beispiel sind die folgenden Schleife wird 3-mal mit i
gleich 0
das erste Mal, 1
die zweite und die dritte 2
:
for i in [0,1,2]:
pass
Der zweite Wert ist auszupacken. Bei einer Sequenztyp, können Sie die Werte in verschiedenen Variablen entpacken:
i, j = (42, 69,)
Nachdem Sie diese Zeile i
laufen 42
halten, und j
wird 69
halten.Das ist übrigens ein Tupel, das eine unveränderliche (d. H. Du kannst es nicht ändern) Sequenz hast.
Schließlich nimmt die Funktion enumerate
eine Sequenz und gibt eine Sequenz von Tupeln zurück, wobei das erste Element eine Indexnummer ist und das zweite Element der Wert der Sequenz an diesem Index ist. Nun, um genau zu sein, braucht es ein sequenzielles Objekt und gibt einen Iterator zurück, aber denselben Unterschied.
Also, im Grunde, mit dieser Syntax erhalten Sie sowohl den Index und den Wert. Nett.
Einbau-Sequenztypen in Python
Sie haben eine Liste ([1, "fish", 2, "fish", "red", "fish", "blue", "fish"]
), eine dict ({'one': 2, 2: 'three'}
), ein Tupel ((one, [1,2], three,)
) und einen Satz ({"one", 3, (1,2)}
, Python 2.7 Syntax). Sie haben auch ein gefrorenes Set, das eine unveränderliche Menge ist und keinen syntaktischen Zucker hat.
Siehe Python documentation for built-in types.
Dann gibt es einige weitere Containertypen im Standard collections
package. Und einige mehr data types in other places in the standard library.
Sie können die Standardliste auch als Stapel oder Warteschlange verwenden. Und lassen Sie sich nicht vom array
-Paket täuschen - Sie verwenden es nicht, um Arrays zu implementieren (Sie verwenden einfache Listen dafür), Sie verwenden es, um binäre Daten zu importieren. Es ist eine Art Begleiter für das struct
Paket.
1. Erstellt ein Array namens counts mit k Elementen, die alle gleich 0 sind. Verwenden Sie für solche Dinge einfach die Shell, um zu testen, was passiert. – corazza
'liste' * ist * ein Array (der Name ist sinnlos und verwirrend meiner Meinung nach, aber was auch immer) und macht auch einen sehr guten Stack (es ist dynamisch und überzuordnen, so dass Sie amortisiert O (1) zum Anhängen/Drücken und Pop ist auch O (1). Warteschlangen (wie auch Deques) befinden sich in der Standardbibliothek. Neben meinem Kopf gibt es auch Sets und Heaps. – delnan
@Bane welche Shell wird empfohlen? Ich habe noch kein Python installiert. –