Речници

„ Програмиране с Python“, ФМИ

Стефан Кънев, Николай Бачийски, Точо Точев & Димитър Димитров

11.03.2009г.

Речници

Речници (2)

>>> capitals = {
    'Germany': 'Berlin',
    'France': 'Paris',
    'Brazil': 'Brasilia',
    'Malaysia': 'Kuala Lumpur',
}
>>> print(capitals['Brazil'])
'Brasilia'
>>> capitals['Brazil'] = 'Brazil'
>>> print(capitals['Brazil'])
'Brazil'
>>> capitals['Sweden'] = 'Stockholm'
>>> print(capitals['Sweden'])
'Stockholm'
>>> del capitals['Malaysia']
>>> print(capitals['Malaysia'])

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Malaysia'

Речници — методи

>>> capitals = {
    'Germany': 'Berlin',
    'France': 'Paris',
    'Brazil': 'Rio de Janeiro',
    'Sweden': 'Stockholm',
}

>>> capitals.get('Assyria')
None
>>> capitals.get('Assyria', "I don't know")
"I don't know"
>>> 'Sweden' in capitals
True
>>> list(capitals.keys())
['Brazil', 'Sweden', 'Germany', 'France']
>>> list(capitals.values())
['Rio de Janeiro', 'Stockholm', 'Berlin', 'Paris']
>>> len(capitals)
4

Речници — методи (2)

>>> numbers = {
    "One": "I",
    "Two": "II",
}

>>> list(numbers.items())
[('One', 'I'), ('Two', 'II')]
>>> numbers.update({"Three": "III", "Four": "IV"})
>>> numbers
{'Four': 'IV', 'Three': 'III', 'Two': 'II', 'One': 'I'}
>>> numbers.pop('Four')
'IV'
>>> numbers
{'Three': 'III', 'Two': 'II', 'One': 'I'}
>>> numbers.popitem()
('Three', 'III')
>>> numbers.popitem()
('Two', 'II')
>>> numbers.setdefault('One', 'Unknown') # D[k]=d if k not in D; return D[k]
'I'
>>> numbers.setdefault('Two', 'Unknown')
'Unknown'

Речници — методи (3)


>>> {1: 1, 2:2} == {2: 2, 1: 1}
True
>>> numbers = {
    "One": "I",
    "Two": "II",
}

>>> numbers_copy = numbers.copy()
>>> numbers_copy
{'Two': 'II', 'One': 'I'}
>>> numbers
{'Two': 'II', 'One': 'I'}
>>> numbers.clear()
>>> numbers_copy
{'Two': 'II', 'One': 'I'}
>>> numbers
{}

Два други начина за създаване на речник

Отново към for цикъла

... range() ...

range(x, y) връща числата в интервала [x, y)


>>> list(range(0, 10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(0, 10, 2))
[0, 2, 4, 6, 8]
>>> list(range(10, 0, -1))
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

Пример за for

for n in range(0, 20):
    if n % 2: continue
    print(n)
    if n > 10: break
Произвежда следния резултат:
0
2
4
6
8
10
12

Пример

romans = {1: 'I', 2: 'II', 3: 'III', 4: 'IV', 5: 'V'}
numbers = [2, 3, 5]

for n in numbers:
    print(n, "is", romans[n], "in Roman numbers")

Получава:

2 is II in Roman numbers
3 is III in Roman numbers
5 is V in Roman numbers

Още for

romans = {1: 'I', 2: 'II', 3: 'III', 4: 'IV', 5: 'V'}

for n,roman in romans.items():
    print(n, "is", roman, "in Roman numbers")

Получава:

1 is I in Roman numbers
2 is II in Roman numbers
3 is III in Roman numbers
4 is IV in Roman numbers
5 is V in Roman numbers

Въпроси?

TODO???