import collections
import multiprocessing
Scientist = collections.namedtuple('Scientist', [
'name',
'born',
])
scientists = (
Scientist(name='Ada Lovelace', born=1815),
Scientist(name='Emmy Noether', born=1882),
Scientist(name='Marie Curie', born=1867),
Scientist(name='Tu Youyou', born=1930),
Scientist(name='Ada Yonath', born=1939),
Scientist(name='Vera Rubin', born=1928),
Scientist(name='Sally Ride', born=1951),
)
def process_item(item):
return {
'name': item.name,
'age': 2017 - item.born
}
pool = multiprocessing.Pool()
result = pool.map(process_item, scientists)
print(tuple(result))
({'name': 'Ada Lovelace', 'age': 202},
{'name': 'Emmy Noether', 'age': 135},
{'name': 'Marie Curie', 'age': 150},
{'name': 'Tu Youyou', 'age': 87},
{'name': 'Ada Yonath', 'age': 78},
{'name': 'Vera Rubin', 'age': 89},
{'name': 'Sally Ride', 'age': 66})