124 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			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
 | 
						|
"""
 | 
						|
 | 
						|
```
 |