2016-03-30 24 views
-1

Ich habe versucht, [:] am Anfang zu verstehen, aber ich kann kein Dokument finden, das es erwähnt. Wo ist der beste Ort, um fortgeschrittene Grammatik für Python zu lernen? Die Google-Suche findet [:] nicht. Aber ich habe es am Ende herausgefunden. Ich frage mich nur, wo es am besten ist, Pythons "Tricks" zu lernen.Was bedeutet x [:] = y?

Zum Beispiel:

def test(x, y): 
    x[:] = y 
    #x = y 

>>> a = [0.5,0.6] 
>>> b = [0.3] 
>>> test(a, b) 
>>> 
>>> print a 
[0.3] # [0.5,0.6] 
+0

Sie stellen zwei Fragen: 1) "Was ist der Mittelwert von x [:] = y?" und 2) "Wo ist der beste Ort, um fortgeschrittene Grammatik für Python zu lernen?" Auf welche Frage willst du eigentlich eine Antwort? –

+0

@xi_ Nun, dieses duple Ziel hat nicht das 'x [:] = y 'als Mittel zum Ersetzen von Listeninhalt klar geschrieben –

+0

Ich bin eigentlich fragen zweite Frage. @ rob – Jerry

Antwort

1

Der Begriff Sie suchen müssen, ist Scheibe. x[start:end:step] ist die vollständige Form, kann eine beliebige weggelassen werden, um einen Standardwert zu verwenden: start standardmäßig 0, end standardmäßig auf die Länge der Liste, und step standardmäßig auf 1. So x[:] bedeutet genau das gleiche wie x[0:len(x):1]. Weitere Informationen finden Sie unter Expression section of the language reference und section four of the python tutorial might also be helpful.

+0

Nicht zu erwähnen [Stack-Überlauf] (http://StackOverflow.com/Questions/509211/Explain-Pythons-Slice-Notation) selbst. –

7

x[:] bedeutet die gesamte Sequenz. Es ist im Grunde x[from:to].

Auslassen from bedeutet, von Anfang bis zur to.

>>> numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> numbers[:5] 
[0, 1, 2, 3, 4] 

Weglassen to Mittel, von dem from bis zum Ende.

>>> numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> numbers[5:] 
[5, 6, 7, 8, 9] 

Auslassen beide bedeutet die gesamte Liste.

>>> numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> numbers[:] 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

Einstellung numbers[:] Mittel die gesamte Liste setzen:

>>> numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> numbers[:] = [1, 2, 3, 4] 
>>> numbers 
[1, 2, 3, 4] 

Beachten Sie numbers[:] Einstellung ändert diese Liste und keine neue erstellen. Das Objekt hat immer noch die gleiche id().

0

Die Notation x[:] entspricht x[0:n] wo nlen(x) ist. Sie gibt den Bereich der Elemente von x von 0 bis einschließlich n-1 an.

Beim Lesen eine neue Liste, string, oder was auch immer erzeugt wird, den angegebenen Bereich von Elementen enthält.

Wenn zugewiesen, wird der angegebene Bereich von Elementen in den ursprünglichen destruktiv ersetzt. Beachten Sie, dass dies für Listen zulässig ist, nicht jedoch für Zeichenfolgen.