Slicing
February 3, 2021•228 words
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.
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()