Я пытаюсь напечатать каждый элемент в следующих двух списках:
lNames = ['John','David','Michael']
lAges = [45,14,32]
with the format: "Person 0, Name: John, Age 34".
I tried adding another list:
```py
lPersons = [0, 1, 2]
Пробовал этот код:
lNames = ['John','David','Michael']
lAges = [45,14,32]
lPersons = [0, 1, 2]
for a in lNames:
for b in lAges:
for c in lPersons:
print("Person: " + c + ", Name: " + a + ", Age: " + b)
Это дало TypeError
, потому что я неправильно комбинирую целые числа со строками при печати. Чего мне не хватает для желаемого результата?
Решение проблемы
Две проблемы:
В for
циклах больше вложений, чем необходимо. Вы не хотите перебирать каждую комбинацию элементов из всех трех списков; скорее, у вас есть список людей и информация об этих людях, и вы хотите распечатать их информацию по одному человеку за раз. Для этого требуется только один проход по каждому списку.
Вы не можете объединить строку и целое число, как указано в ошибке. Вместо этого вы можете использовать f-строку.
Вот фрагмент кода, который решает обе проблемы:
for i in range(len(lNames)):
print(f"Person: {lPersons[i]}, Name: {lNames[i]}, Age: {lAges[i]}")
Или, что еще лучше, используйте zip()
:
for name, age, person_id in zip(lNames, lAges, lPersons):
print(f"Person: {person_id}, Name: {name}, Age: {age}")
Эти выходные данные:
Person: 0, Name: John, Age: 45
Person: 1, Name: David, Age: 14
Person: 2, Name: Michael, Age: 32
Комментариев нет:
Отправить комментарий