Capisco che somelist[len(somelist)]
non possa accedere a un indice che si trova al di fuori dell'elenco definito - questo ha senso.Perché il somelist [len (somelist)] genera un errore IndexError ma non un somelist [len (somelist):]?
Ma perché Python ti permette di fare somelist[len(somelist):]
?
Ho anche letto che somelist[len(somelist):] = [1]
equivale a somelist.append(1)
Ma perché fetta notazione cambia il fatto che l'indice "len (somelist)" è ancora al di fuori della gamma di lista?
Ok, questo spiega perché viene restituita una lista vuota (come altri hanno sottolineato). Ma perché 'somelist [len (somelist):] = [1]' ti consente di aggiungere 1 al somelist? L'equivalente del comando precedente non è solo '[] = [1]'? Mi scuso, non sto cercando di essere denso. –
Se 'i'> =' j', la sezione è vuota (al momento non ci sono articoli) ma non è un oggetto elenco vuoto; è ancora una sezione che inizia con 'i', e assegnandole una lista rimuove gli elementi correnti (non ce ne sono) dall'elenco e inserisce gli elementi nell'elenco assegnato in posizione' i'. – rakslice
Ad esempio, supponiamo di aver impostato 'x = range (5)', e quindi di assegnare la porzione 'x [3: 2] = [8,7,6]', 'x' sarà ora' [0, 1, 2, 8, 7, 6, 3, 4] '. Questa è la stessa situazione; non c'è nulla di speciale nell'assegnazione delle slice nel caso 'i' =' len (s) '. – rakslice