Python: packing & unpacking

6-Wrz-2017

Python ma ciekawe rozwiązanie dotyczące przepisywania wartości. Jest to szczególnie prawdziwe w przypadku, gdy za jednym zamachem chcesz przypisać kilka wartości. Instrukcja

my_tuple = (1,2,3,4)

to tzw. tuple packing – wartości 1,2,3,4 są konwertowane do tuple i zapisywane w zmiennej.

Instrukcja

to tzw. tuple unpacking. Jest tworzony roboczy tuple (a,b,c,d) i do niego do każdej kolejnej wartości z tego tuple są przypisywane kolejne wartości z my_tuple, więc w efekcie a ma wartość 1, b ma wartość 2, c ma wartość 3, a d ma wartość 4

Dla ułatwienia (bo Pythonowcy lubią upraszczać sprawy) podczas wykonywania można pisać nawiasy, ale nie trzeba. Tutaj do a1, a2, a3, a4 najpierw przypisują wartości w sposób tradycyjny, a potem już wykonuję równoważne polecenia:

jeszcze fajniej wygląda to przy pracy z napisami:

Napis ‚Nice’ jest traktowany jako czteroelementowa lista, a podczas przypisania do zmiennych i, j, k, l do każdej z nich trafia tylko jedna literka z napisu.

Jeśli jednak ilość zmiennych po lewej i prawej stronie się nie zgadza, to dostaniesz błąd:

Żeby go poprawić trzeba tylko zadbać o taką samą ilość elementów po lewej stronie jak i po prawej stronie.

Na początku wygląda to dziwnie i może się trochę w głowie kręcić od mnóstwa możliwości, ale da się przywyknąć 🙂

Dodaj komentarz:

Autor: Rafał Kraik