Supponiamo che io ho una lista con gli elementi XCome tagliare una lista in Python
[4,76,2,8,6,4,3,7,2,1...]
vorrei i primi 5 elementi. A meno che non abbia meno di 5 elementi.
[4,76,2,8,6]
Come fare?
Supponiamo che io ho una lista con gli elementi XCome tagliare una lista in Python
[4,76,2,8,6,4,3,7,2,1...]
vorrei i primi 5 elementi. A meno che non abbia meno di 5 elementi.
[4,76,2,8,6]
Come fare?
Basta sottoindice con [:5]
che indica che si desidera (fino a) i primi 5 elementi.
>>> [1,2,3,4,5,6,7,8][:5]
[1, 2, 3, 4, 5]
>>> [1,2,3][:5]
[1, 2, 3]
>>> x = [6,7,8,9,10,11,12]
>>> x[:5]
[6, 7, 8, 9, 10]
Inoltre, mettendo i due punti sulla destra del numero indica conteggio dall'elemento n-esimo in poi - non dimenticare che le liste sono basati 0!
>>> x[5:]
[11, 12]
Questo è comunemente noto come slicing. – Steve314
Questo crea un * nuovo * elenco, non ritaglia quello esistente. Per tagliare sul posto, usa 'del' su una fetta; per esempio. 'del listobj [-x:]' rimuoverà gli ultimi elementi * x * dall'oggetto list. –
l = [4,76,2,8,6,4,3,7,2,1]
l = l[:5]
Basta non chiamare la lista 'lista' in codice reale! –
@too Ovviamente, questo è fatto solo a scopo dimostrativo: D – mgbowen
>>> [1,2,3,4,5,6,7,8,9][:5]
[1, 2, 3, 4, 5]
>>> [1,2,3][:5]
[1, 2, 3]
di ritagliare una lista in atto senza creare copie di esso, utilizzare del
:
>>> t = [1, 2, 3, 4, 5]
>>> # delete elements starting from index 4 to the end
>>> del t[4:]
>>> t
[1, 2, 3, 4]
>>> # delete elements starting from index 5 to the end
>>> # but the list has only 4 elements -- no error
>>> del t[5:]
>>> t
[1, 2, 3, 4]
>>>
Vedi anche: http://stackoverflow.com/questions/509211/good-primer- for-python-slice-notation –