eolas/neuron/57f4d44e-6e5d-4bdf-a12c-b7dac10ca90d/Dictionaries_in_Python.md
2024-10-21 13:04:02 +01:00

124 lines
2.1 KiB
Markdown

---
tags: [python, data-structures]
---
# Dictionaries in Python
Dictionaries are basically the Python equivalent of objects in JS.
Dictionaries:
- Are ordered (in contrast to JS)
- Are mutable
- Are indexed by a key which references a value
- Can be increased/decreased in length by adding/removing new members.
## Basic usage
Dictionaries are declared with `{...}`:
```python
cities = {
'Wales': 'Cardiff',
'England': 'London',
'Scotland': 'Edinburgh',
'Northern Ireland': 'Belfast',
'Ireland': 'Dublin'
}
print(type(citites))
# <class 'dict'>
```
## Accessing entries
```python
print(cities['Wales'])
# Cardiff
print(cities.get('Ireland'))
# Dublin
print(cities.values())
# ['Cardiff', 'London', 'Edinburgh', 'Belfast', 'Dublin']
print(cities.keys())
# ['Wales', 'England', 'Scotland', 'Northern Ireland', 'Ireland']
print(cities.items())
# [('Wales', 'Cardiff'), ('England', 'London'), ('Scotland', 'Edinburgh'), ('Northern Ireland', 'Belfast'), ('Ireland', 'Dublin')]
```
## Predicates
```py
print('Wales' in cities)
# True
print('France' not in cities)
# True
```
## Looping
```py
for country in cities:
print(country, end=', ')
print(cities[country])
"""
Wales, Cardiff
England, London
Scotland, Edinburgh
Northern Ireland, Belfast
Ireland, Dublin
"""
for e in country.values():
print(e)
```
## Updating values
```py
cities['Wales'] = 'Swansea'
print(cities)
```
## Removing values
```py
# Remove last item
cities.popitem()
print(cities)
# {'Wales': 'Cardiff', 'England': 'London', 'Scotland': 'Edinburgh', 'Northern Ireland': 'Belfast'}
# Remove specific entry by key
cities.pop('Northern Ireland')
print(cities)
# {'Wales': 'Cardiff', 'England': 'London', 'Scotland': 'Edinburgh'}
del cities['Scotland']
print(cities)
{'Wales': 'Cardiff', 'England': 'London'}
```
## Containers as values
```py
seasons = {
'Spring': ('Mar', 'Apr', 'May'),
'Summer': ('June', 'July', 'August'),
'Autumn': ('September', 'October', 'November'),
'Winter': ('December', 'January', 'February')}
print(seasons['Spring'])
print(seasons['Spring'][1])
"""
('Mar', 'Apr', 'May')
Apr
"""
```