<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=TI%2FProgramowanie_dla_Fizyk%C3%B3w_Medycznych%3AStruktury_danych%3AS%C5%82owniki</id>
	<title>TI/Programowanie dla Fizyków Medycznych:Struktury danych:Słowniki - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=TI%2FProgramowanie_dla_Fizyk%C3%B3w_Medycznych%3AStruktury_danych%3AS%C5%82owniki"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Programowanie_dla_Fizyk%C3%B3w_Medycznych:Struktury_danych:S%C5%82owniki&amp;action=history"/>
	<updated>2026-05-03T19:47:01Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=TI/Programowanie_dla_Fizyk%C3%B3w_Medycznych:Struktury_danych:S%C5%82owniki&amp;diff=1986&amp;oldid=prev</id>
		<title>Jarekz: Utworzono nową stronę &quot;Słowniki można zaliczyć do kategorii odwzorowań, przechowują one w nieuporządkowany sposób pary klucz-wartość, z czego klucze muszą być typów niezmiennych (l...&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Programowanie_dla_Fizyk%C3%B3w_Medycznych:Struktury_danych:S%C5%82owniki&amp;diff=1986&amp;oldid=prev"/>
		<updated>2015-05-23T14:16:44Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;Słowniki można zaliczyć do kategorii odwzorowań, przechowują one w nieuporządkowany sposób pary klucz-wartość, z czego klucze muszą być typów niezmiennych (l...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Słowniki można zaliczyć do kategorii odwzorowań, przechowują one w nieuporządkowany sposób pary klucz-wartość, z czego klucze muszą być typów niezmiennych (liczby, napisy i krotki zawierające jedynie typy niezmienne). Klucze muszą być różne, aby jednoznacznie definiowały wartości.&lt;br /&gt;
&lt;br /&gt;
Pusty słownik tworzy się następująco:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D = {}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D = dict()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a słownik zawierający elementy za pomocą wymienienia par klucz-wartość po przecinku w nawiasach wąsatych, przy pomocy funkcji wbudowanej dict, albo kopiując istniejący już słownik metodą copy:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D = {'Ala' : 1, (1, 2, 3) : ['B', 'C'], 1 : &amp;quot;AKIA&amp;quot;}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{1: 'AKIA', (1, 2, 3): ['B', 'C'], 'Ala': 1}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D = dict(Ala = 1, Basia = 2)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'Basia': 2, 'Ala': 1}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D = dict((('Ala', 1), ('Basia', 2)))&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'Basia': 2, 'Ala': 1}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D = dict([('Ala', 1), ('Basia', 2)])&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'Basia': 2, 'Ala': 1}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D = dict({'Basia': 2, 'Ala': 1})&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'Basia': 2, 'Ala': 1}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; B = D.copy()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; B&lt;br /&gt;
{'Basia': 2, 'Ala': 1}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ostatnią metodą tworzenia słowników jest wykorzystanie metody klasowej fromkeys - zwraca ona słownik z kluczami pochodzącymi z danej sekwencji i wartościami równymi zadanej wartości (jeśli ją pominiemy to przyjmowane jest None):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dict.fromkeys(['A', 'B', 'C', 'D'])&lt;br /&gt;
{'A': None, 'C': None, 'B': None, 'D': None}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dict.fromkeys(['A', 'B', 'C', 'D'], 5)&lt;br /&gt;
{'A': 5, 'C': 5, 'B': 5, 'D': 5}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elementy słownika odczytujemy indeksując po kluczach (jeśli podamy klucz, który nie był w słowniku zostanie zgłoszony wyjątek), lub wywołując metodę get z podanym kluczem, można podać drugi parametr i wtedy zostanie on zwrócony w sytuacji gdy klucza nie było w słowniku (domyślnie jest przyjmowany None). W przeciwieństwie do list słowniki można rozszerzać przez zapisywanie elementów na klucze dotąd niewystępujące w słowniku. Ostatnią opcją odczytania elementów słownika jest metoda setdefault, której podajemy klucz i opcjonalnie wartość, która domyślnie jest przyjmowana None, jeśli klucz był w słowniku to zwracana jest odpowiadająca mu wartość inaczej jest wstawiana do słownika para klucz-zadana wartość i jest zwracana zadana wartość:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'a' : 1}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D['a']&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D['z']&lt;br /&gt;
&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;&amp;lt;pyshell#105&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;&lt;br /&gt;
    D['z']&lt;br /&gt;
KeyError: 'z'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.get('a')&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.get('z')&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.get('z', 5)&lt;br /&gt;
5&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D['b'] = 2&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'a': 1, 'b': 2}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.setdefault('z')&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'a': 1, 'b': 2, 'z': None}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.setdefault('a')&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.setdefault('zz', 22)&lt;br /&gt;
22&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'a': 1, 'b': 2, 'z': None, 'zz': 22}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elementy słownika można usuwać przy pomocy słowa del, a cały słownik można wyczyścić metodą clear, pewną parę klucz-wartość (nie wiadomo którą) zwraca i usuwa ze słownika metoda popitem(), a metoda pop(key) zwraca i usuwa ze słownika wartość o kluczu key zgłaszając wyjątek gdy danego klucza nie ma w słowniku, jeśli podamy dodatkowy parametr, to jest on zwracany zamiast zgłaszania wyjątku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; del D['c']&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'a': 1, 'b': 2, 'e': 5, 'd': 4}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.popitem()&lt;br /&gt;
('a', 1)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'b': 2, 'e': 5, 'd': 4}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.pop('b')&lt;br /&gt;
2&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.pop('f', 'gg')&lt;br /&gt;
'gg'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'e': 5, 'd': 4}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.clear()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Za pomocą operatora in i not in można testować czy dany klucz jest/nie jest w słowniku (można także użyć metody has_key):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D = {'A': 5, 'C': 5, 'B': 5, 'D': 5}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 'A' in D&lt;br /&gt;
True&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 'a' in D&lt;br /&gt;
False&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.has_key('A')&lt;br /&gt;
True&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Przy pomocy metody keys można uzyskać listę kluczy, metoda values zwraca listę wartości, a items listę krotek (klucz, wartość):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'Basia': 2, 'Ala': 1}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.keys()&lt;br /&gt;
['Basia', 'Ala']&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.values()&lt;br /&gt;
[2, 1]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.items()&lt;br /&gt;
[('Basia', 2), ('Ala', 1)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iteratory do list kluczy, wartości i par klucz-wartość zwracają metody iterkeys, itervalues i iteritems. Zarówno listy jak i iteratory można wykorzystać w pętli for do przeglądania słownika.&lt;br /&gt;
&lt;br /&gt;
Wielkość słownika można sprawdzić funkcją len.&lt;br /&gt;
&lt;br /&gt;
Do słownika można dodać elementy z innego słownika przy pomocy metody update:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'a': 1, 'b': 2}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D.update({'a' : 3, 'c' : 4}) #Zwróć uwagę, że wartość przypisana do klucza 'a' uległa zmianie&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; D&lt;br /&gt;
{'a': 3, 'c': 4, 'b': 2}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>