Python: Slicing

Python bootcamp #100DaysOfCode #myNotes

Met slicing kun je een reeks selecteren uit een sequentieel object zoals een lijst of tuple. Je kunt een “vanaf” begin, “tot” eind en tussenstap meegeven. Dit doe je tussen blokhaken gescheiden door dubbele punten. [vanaf:tot:stap]

De slices zijn net iets anders dan de indexes. Zie plaatje hieronder. Zoals je kunt zien begint een slice net iets voor de index.

Een lijst die aantoond waar de index staat en waar de slice begint.

een_lijst = ["a", "b", "c", "d", "e", "f", "g"]

# vanaf slice 2 tot slice 5
een_lijst[2:5] # C D E

# alles vanaf slice 2
een_lijst[2:] # C D E F G

# alles tot slice 5
een_lijst[:5] # A B C D E

# vanaf slice 2 tot slice 5
# met stappen van 2
een_lijst[2:5:2] # C E

# elke tweede item in de hele lijst
een_lijst[::2] # A C E G

# hele lijst omgekeerd
een_lijst[::-1] # G F E D C B A

In onderstaande voorbeeld zie je waarom slicing handig kan zijn. Voor een beetje context, één van de opdrachten van deze cursus is om de retro snake game te bouwen.

# zonder slicing

 # detect collision with tail
    for segment in snake.segments:
        if segment == snake.head:
            pass
        elif snake.head.distance(segment) < 10:
            game_is_on = False
            scoreboard.game_over()

# met slicing

# detect collision with tail
    for segment in snake.segments[1:]:
        if snake.head.distance(segment) < 10:
            game_is_on = False
            scoreboard.game_over()

Geplaatst

in

,

door

Reacties

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.