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.
Slicing a list

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

More from Lucia
All posts