Estoy teniendo algunos problemas para averiguar cómo cortar las listas de python, que se ilustra como sigue:

>>> 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]

A mi entender, python rebanada significa lst[inicio:final], y de inicio, excluyendo final. Así que, ¿cómo iba yo a ir sobre la búsqueda de la «resto» de una lista a partir de un elemento de n?

Muchas gracias por toda su ayuda!

InformationsquelleAutor FurtiveFelon | 2009-03-07

6 Comentarios

  1. 63

    Puede dejar un extremo de la corte por la mitad por no especificar el valor.

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

    Si usted está utilizando una variable como el rango extremo, puede utilizar None.

     start = 4
     end = None
     test[start:end]
    • ¡Oh, gracias! yo estaba buscando esto, pero no sabía cómo buscarlo :). Me siento aceptado la respuesta es incompleta sin este, porque dejando a un final del índice es trivial y tiene suficiente documentación.
  3. 1

    Devolver una porción de la lista después de un valor inicial:

    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
  4. 0

    También puede utilizar el Ninguno palabra clave para el final parámetro cuando en rodajas. Esta sería también la devolución de los elementos hasta el final de la lista (o cualquier secuencia como tupla, cadena, etc.)

    # 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)

Dejar respuesta

Please enter your comment!
Please enter your name here