Domanda

Ho qualche problema a capire come tagliare le liste di Python, è illustrato come segue:

>>> test = range(10)
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> test[3:-1]
[3, 4, 5, 6, 7, 8]
>>> test[3:0]
[]
>>> test[3:1]
[]
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Per quanto ne so, Python Slice significa lst [inizio: fine] e include inizio, escluso fine. Quindi, come potrei fare per trovare il "resto" di un elenco a partire da un elemento n?

Grazie mille per tutto il tuo aiuto!

È stato utile?

Soluzione

Puoi lasciare un'estremità della sezione aperta non specificando il valore.

test[3:] = [3, 4, 5, 6, 7, 8, 9]
test[:3] = [0, 1, 2]

Altri suggerimenti

Se si utilizza una variabile come endpoint dell'intervallo, è possibile utilizzare None .

 start = 4
 end = None
 test[start:end]

Ometti semplicemente la fine.

test[n:]

Uscire dalla fine funziona ancora quando vuoi saltarne un po ':

range(10)[3::2] => [3, 5, 7, 9]

Restituisce una porzione dell'elenco dopo un valore iniziale:

list = ['a','b','c','d']
start_from = 'b' # value you want to start with
slice = list[list.index(start_from):] # returns slice from starting value to end

Puoi anche utilizzare Nessuno parola chiave per il parametro end durante lo slicing. Ciò restituirebbe anche gli elementi fino alla fine dell'elenco (o qualsiasi sequenza come tupla, stringa, ecc.)

# for list
In [20]: list_ = list(range(10))    
In [21]: list_[3:None]
Out[21]: [3, 4, 5, 6, 7, 8, 9]

# for string
In [22]: string = 'mario'
In [23]: string[2:None]
Out[23]: 'rio'

# for tuple
In [24]: tuple_ = ('Rose', 'red', 'orange', 'pink', 23, [23, 'number'], 12.0)
In [25]: tuple_[3:None]
Out[25]: ('pink', 23, [23, 'number'], 12.0)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top