Mapping attributes to words by Python (5.3-5.3.2)

Creating python dictionary:

>>> pos = []
>>> pos
[]
>>> pos['colorless'] = 'ADJ'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str

This is typical mistake. We should use {} intead of [].

>>> pos = {}
>>> pos['colorless'] = 'ADJ'
>>> pos
{'colorless': 'ADJ'}
>>> pos['ideas'] = 'N'
>>> pos['sleep'] = 'V'
>>> pos['furiously'] = 'ADV'
>>> pos
{'furiously': 'ADV', 'sleep': 'V', 'ideas': 'N', 'colorless': 'ADJ'}

Using 'words' to search entries.

>>> pos['ideas']
'N'
>>> pos['furiously']
'ADV'
>>> pos['cow']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'cow'
>>> 

Handling after converting into list:

>>> len(pos)
4
>>> list(pos)
['furiously', 'sleep', 'ideas', 'colorless']
>>> sorted(pos)
['colorless', 'furiously', 'ideas', 'sleep']
>>> [w for w in pos if w.endswith('s')]
['ideas', 'colorless']

Dictionary has 3 methods, keys(), values() and items().

>>> pos.keys()
['furiously', 'sleep', 'ideas', 'colorless']
>>> pos.values()
['ADV', 'V', 'N', 'ADJ']
>>> pos.items()
[('furiously', 'ADV'), ('sleep', 'V'), ('ideas', 'N'), ('colorless', 'ADJ')]
>>> for key, val in sorted(pos.items()):
...     print key + ":", val
... 
colorless: ADJ
furiously: ADV
ideas: N
sleep: V
>>>