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 >>>