2015-12-17 17 views
6

Sono nuovo di Python, qualcuno potrebbe dirmi la differenza tra l'uscita di questi due blocchi di codice:Affettare delle liste in Python

1.

>> example = [1, 32, 1, 2, 34] 
>> example[4:0] = [122] 
>> example 
[1, 32, 1, 2, 122, 34] 

2.

>> example = [1, 32, 1, 2, 34] 
>> example[4:1] = [122] 
>> example 
[1, 32, 1, 2, 122, 34] 
+0

Sono abbastanza sicuro che la riga uno e tre di entrambi i blocchi di codice non sono python validi, a meno che non si definisca l'esempio come elenco ecc con almeno 123 elementi. –

+1

Suggerimento: cosa restituisce 'esempio [4: 0]'? Che dire di 'esempio [4: 1]'? E 'esempio [4: 5]'? Cerca di capire come funziona l'affettatura, quindi puoi dedurre perché i tuoi compiti fanno la stessa cosa. –

+0

Grazie ragazzi ... finalmente capito il concetto di affettare – kanishka

risposta

1

Non c'è niente di sbagliato qui. L'uscita è lo stesso perché l'unica linea che è diverso nei due snipets codice è

example[4:0] = [122] 

e

example[4:1] = [122] 

Entrambi aggiungerà e assegnare il valore 122 (sto elenco di dimensioni assumendo uno == valore qui) per l'elemento dopo quello all'indice 4. poiché il numero nel limite superiore della sezione è inferiore a quattro in entrambi i casi, non hanno alcun effetto.

5

tuo affettare fornisce un elenco vuoto con indice 4 perché il limite superiore è inferiore al limite inferiore:

>>> example[4:0] 
[] 

>>> example[4:1] 
[] 

Questo elenco vuoto è sostituito dal tuo elenco [122]. L'effetto è lo stesso di fare:

>>> example.insert(4, 122) 

Basta ricordare che le liste vuote e le liste con un elemento sono niente di speciale, anche se gli effetti che hanno quando vengono utilizzati non sono così evidenti in principio. Il Python tutorial ha più dettagli.

+1

@kanishka Questo risponde alla tua domanda? –

Problemi correlati