Se ho una lista e voglio troncarla in modo che non siano più di 100 voci, come posso fare?Come troncare un elenco?
risposta
Per modificare l'elenco sul posto (piuttosto che fare una copia più corta della lista), l'uso:
del l[100:]
+1 Completamente dimenticato 'del' funziona con le fette. – delnan
slicing con un [: 100] è generalmente una soluzione migliore poiché ha prestazioni costanti, ma del a [100:] diventa più lento per un elenco più grande. – kefeizhou
kefeizhou: Ciò potrebbe dipendere da ciò che effettivamente si desidera. Se davvero non hai più bisogno delle voci oltre i primi 100, dovresti eliminarle.Dire che è in genere un'idea migliore per tenerli in giro perché questo richiede meno tempo di quanto la cancellazione li sembra un ragionamento strano per me. –
È possibile utilizzare l'elenco per affettare:
a = a[0:100]
E se si vuole assolutamente liberare il resto inutilizzato: del a [100:] – Confusion
@Confusion: la parte restante viene raccolta automaticamente dopo che 'a' è stato l'unico riferimento all'elenco. –
Si può fare qualcosa di simile:
truncated = list[:100]
Il items[:100]
altro menzionato ti dà una nuova lista che contiene i primi 100 elementi di items
. Se si desidera modificare l'elenco sul posto, utilizzare utilizzare items[:] = items[:100]
(assegnazione sezione) o while len(items) > 100: items.pop()
del items[100:]
come proposto da Ned Batchelder.
È possibile utilizzare per affettare, se non ti dispiace semplicemente la creazione di una nuova copia della lista che contiene solo gli elementi che vuoi ... tuttavia questo lascia la lista originale non modificata.
>>> a = [0,1,2,3,4,5,6,7,8,9]
>>> b = a[0:5]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> b
[0, 1, 2, 3, 4]
Se davvero si vuole troncare la lista originale, basta eliminare gli elementi che non si desidera utilizzando affettare con del
>>> del a[5:]
>>> a
[0, 1, 2, 3, 4]
La risposta corretta è, ovviamente:
>>> x = range(10)
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x = x[:5]
>>> x
[0, 1, 2, 3, 4]
Ma, soprattutto, se sei interessato ai valori superiori a 100 e vuoi estrarli uno per uno per qualsiasi motivo, puoi anche usare POP()
>>> x = range(10)
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x.pop()
9
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8]
Si può anche specificare quale elemento per tirare fuori:
>>> x= range(10,20)
>>> x
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> x.pop(3)
13
>>> x.pop()
19
>>> x
[10, 11, 12, 14, 15, 16, 17, 18]
>>> x.pop(-1)
18
[10, 11, 12, 14, 15, 16, 17]
Questo rimuove i singoli elementi, accorciando la lista, senza copiare.
Quindi, una risposta ottusa e schifosa (ma anche corretta) sarebbe quella di scorrere verso il basso. Sto solo andando giù 12-8 per facilità di lettura qui:
>>> x=range(12)
>>> for i in range(len(x), 8, -1):
... y = x.pop()
... print "popping x: ", y, ", x=", x
...
popping x: 11 , x= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
popping x: 10 , x= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
popping x: 9 , x= [0, 1, 2, 3, 4, 5, 6, 7, 8]
popping x: 8 , x= [0, 1, 2, 3, 4, 5, 6, 7]
Certo, non è ottimale, ma ho appena imbattuto in una situazione in cui avevo bisogno di questo in modo ho pensato di condividerle qui (Sto troncando una lista quando vedo il primo valore non-Nessuno).
- 1. Come posso troncare un elenco in C#?
- 2. PHP come troncare un array
- 3. Come troncare un file in C?
- 4. Come troncare facilmente un array con JavaScript?
- 5. Come troncare le tabelle correttamente?
- 6. Rails 3 - Troncare in un controller?
- 7. Come troncare una stringa per adattarla a un contenitore?
- 8. mysql: come troncare la lunghezza di un campo
- 9. Come troncare una stringa UTF8 in PHP?
- 10. come troncare il testo rispetto all'altezza div?
- 11. H2 - Come troncare tutte le tabelle?
- 12. Come TRONCARE TABELLA usando l'ORM di Django?
- 13. Come posso troncare una stringa in jQuery?
- 14. Sementi Rails: come troncare la tabella DB?
- 15. Come troncare una tabella usando Doctrine?
- 16. Come troncare tutte le tabelle utente?
- 17. bc troncare virgola mobile numero
- 18. Troncare il testo in PHP?
- 19. Troncare un doppio in un float in C
- 20. troncare ToolStripStatusLabel invece di nasconderlo
- 21. Sottostringa per troncare il testo?
- 22. Decimale - troncare gli zero finali
- 23. Come fare un elenco generico uguale un altro elenco generico
- 24. Come ottenere un elenco distinto da un elenco personalizzato?
- 25. Come verificare se un elenco contiene un elenco secondario
- 26. Come ordinare un elenco in base a un altro elenco?
- 27. C'è un altro modo per troncare una stringa?
- 28. Script di shell Unix per troncare un file grande
- 29. Va bene troncare un hash SHA256 a 128 bit?
- 30. Come randomizzare un elenco ordinato?
cosa hai provato? – SilentGhost
possibile duplicato http://stackoverflow.com/questions/1534939/how-to-trim-a-list-in-python –