Возможно, вы захотите рассмотреть возможность использования другой структуры данных, что позволяет хранить все данные для каждого человека. С двумя людьми и только с двумя атрибутами для каждого человека это не имеет особого значения, но если у вас много людей и множество атрибутов, для уничтожения синхронизации требуется только одна ошибка в одном из ваших списков. И если это произойдет, один или несколько людей в вашей базе данных получат неправильные данные, связанные с ними.
Одна возможность состоит в том, чтобы использовать список dicts, один Dict для каждого человека, например
new_people = [
{'age': 56, 'name': 'john'},
{'age': 64, 'name': 'peter'}
]
И тогда вы можете легко распечатать его, делая что-то вроде этого:
for d in new_people:
print('My name is {0}, I am {1} years old.'.format(d['name'], d['age']))
Выход :
My name is john, I am 56 years old.
My name is peter, I am 64 years old.
Не так сложно преобразовать существующих людей в список диктонов. Это, вероятно, более удобным для чтения, чтобы сделать это с парой for
петель, но я это сделал с этого вложенного выражения список понимание/генератора:
new_people = [dict(t) for t in (((k,v[i]) for k,v in People.items()) for i in range(len(People['name'])))]
PS. Это соглашение в Python для использования имен нижнего регистра для обычных переменных. Имена, начинающиеся с буквы верхнего регистра, например People, обычно используются для занятий. У вас не есть, чтобы следовать этому соглашению, но это облегчает людям, читающим ваш код. Вы можете заметить, что в коде, который вы разместили выше, Люди светло-голубого цвета, это потому, что форматировщик SO-кода считает свое имя класса.
@ PM2Ring, он работает очень хорошо для меня (оба в Python 2.7, Python 3.4). Смотрите это: https://asciinema.org/a/12330 – falsetru
@ PM2Ring, версия 'map' будет более полезна, если в словаре есть более двух ключей. (Вам не нужно повторять 'people [...]') – falsetru
@ PM2Ring, вы были совершенно правы. Извините за неправильную мысль. Спасибо, что указали это. – falsetru