Obiekt odwzorowujący odwzorowuje wartości niemutowalne na dowolne
obiekty. Odwzorowania są obiektami mutowalnymi.
Obecnie istnieje tylko jeden standardowy typ odwzorowujący, a mianowicie
słownik. Kluczami w słowniku mogą być niemal dowolne wartości.
Jedynymi typami wartości niedopuszczalnymi jako klucze są
listy lub słowniki (które są porównywane na podstawie wartości a nie
adresu obiektu). Typy liczbowe używane jako klucze zachowują podstawowe
zasady porównywania liczbowego: jeśli dwie liczby są równe (n.p. 1
i 1.0) mogą zamiennie służyć jako indeks tej samej pozycji
w słowniku.
Słowniki są tworzone przez umieszczenie par klucz:
wartość oddzielonych przecinkami wewnątrz nawiasów klamrowych, na
przykład: {'jacek': 4098, 'placek': 4127} lub {4098:
'jacek', 4127: 'placek'}.
Dla odwzorowań zostały zdefiniowane następujące operacje (gdzie a i b są odwzorowaniami, k jest kluczem a v i x są dowolnymi obiektami):
| Operacja | Wynik | Uwagi |
|---|---|---|
len(a) |
ilość elementów w a | |
a[k] |
element a odp. kluczowi k | (1) |
a[k] = v |
przypisanie a[k] wartości v |
|
del a[k] |
usunięcie a[k] z a |
(1) |
a.clear() |
usunięcie wszystkich elementów z a |
|
a.copy() |
(płytka) kopia a |
|
a.has_key(k) |
1 jeśli a posiada klucz k, w przeciwnym
wypadku 0 |
|
k |
Równoważne zapisowi a.has_key(k) | (2) |
k |
Równoważne zapisowi not a.has_key(k) |
(2) |
a.items() |
elementy z a w postaci listy par (klucz, wartość) | (2) |
a.keys() |
kopia listy kluczy z a | (3) |
a.update(b) |
for k in b.keys(): a[k] = b[k] |
(3) |
a.fromkeys(seq[, value]) |
Tworzy nowy słownik o kluczach pobranych z sekwencji seq i wartościach z value | (7) |
a.values() |
kopia listy wartości z a | (3) |
a.get(k[, x]) |
jeśli k to a[k],
w przeciwnym przypadku x |
(4) |
a.setdefault(k[, x]) |
jeśli k to a[k],
w przeciwnym przypadku x (zapisując w a brakującą
wartość) |
(5) |
a.pop(k) |
usunięcie elementu o indeksie k zwracając wartość
a[k] |
|
a.popitem() |
usuniecie i zwrócenie przypadkowej pary (klucz, wartość) | (6) |
a.iteritems() |
zwraca iterator operujący na parach (klucz, wartość) | (2), (3) |
a.iterkeys() |
zwraca iterator operujący na kluczach odwzorowań | (2), (3) |
a.iteritems() |
zwraca iterator operujący na wartościach odwzorowań | (2), (3) |
Uwagi:
(klucz, wartość) za pomocą funkcji
zip() w następujący sposób: "(pary =
zip(a.values(), a.keys())". Podobna zależność istnieje
pomiędzy metodami itervalues() oraz iterkeys():
"(pary = zip(a.itervalues(), a.iterkeys())" dadzą ten
sam wartość zmiennej pary co powyższy przykład. Jeszcze innym
sposobem uzyskania par (klucz, wartość) jest
wykonanie następującego kodu: "pary = [(v, k) for (k, v) in
a.iteritems()]"
None.
None.
Dodano w wersji 2.3.
Zajrzyj do Informacji na temat tej publikacji... aby pomóc w jej rozwoju.