I have a confusion what's wrong with my code:
users = [{'id': 1, 'name': 'Number1', 'age': 11},
{'id': 2, 'name': 'Number2', 'age': 12},
{'id': 3, 'name': 'Number3', 'age': 13},
{'id': 4, 'name': 'Number4', 'age': 14}]
_keys = ('name', 'age')
data_by_user_id = {u.get('id'): (u.get(k) for k in _keys) for u in users}
data_by_user_id looks like:
{1: <generator object <genexpr> at 0x7f3c12c31050>, 2: <generator object <genexpr> at 0x7f3c12c310a0>, 3: <generator object <genexpr> at 0x7f3c12c310f0>, 4: <generator object <genexpr> at 0x7f3c12c31140>}
but after iteration:
for user_id, data in data_by_user_id.iteritems():
name, age = data
print user_id, name, age
result is different than I expected:
1 Number4 14
2 Number4 14
3 Number4 14
4 Number4 14
Can anyone explain me what am I doing here wrong? I know I can use list comprehension instead of generator but I'm trying to figure what's the issue with my code
Thanks!