2015-06-10 12 views
7

Ho una lista di elementi in Python e ho bisogno di ottenere "tutti tranne gli ultimi N" elementi. Deve funzionare quando N è zero (nel qual caso voglio l'intera lista) e quando N è maggiore o uguale alla lunghezza della lista (nel qual caso voglio una lista vuota). Questo funziona nella maggior parte dei casi:Come suddividere (in Python) "tutti tranne gli ultimi n" elementi quando n può essere zero?

mylist=[0,1,2,3,4,5,6,7,8,9] 
print(mylist[:-n]) 

Ma non nel caso in cui N è pari a zero. mylist[:0] restituisce una lista vuota: []. C'è una notazione per affettare Python che farà ciò che voglio, o una semplice funzione?

+1

Si può invertire la lista e semplicemente applicare la notazione affettare positivo. – ZdaR

+0

cosa succede se la lista è '[1,2,3,4,5]' e n è 6? –

+0

stampa mylist [: - n] se n> 0 else mylist [:] – kezzos

risposta

19

È possibile passare None alla fetta

print(mylist[:-n or None]) 
Problemi correlati