Как реализовать подкладку данных при цикле for?

У меня есть нерабочий код с очевидными ошибками:

import time

names = ['Bob', 'Larry', 'Sean']
surnames = ['Baker', 'Holloway', 'Whitehorse']

for i in names and surnames:
    print(i(names)
    print(i(surnames))
    time.sleep(3)

Что же я попытался сделать? Думаю все вполне очевидно, однако поясню: Я хотел чтобы программа вывела в print() Bob, а затем вывела Baker. На следующей итерации ожидаемым результатом был Larry и Holloway, и в последний раз по плану должно было выйти Sean и Whitehorse, однако сама проблема и так ясна.. Вопрос! Как же сделать код рабочим? Честно скажу, пытался додуматься сам, но добился лишь сильнейших головных болей.


Ответы (2 шт):

Автор решения: gil9red

Используйте функцию zip:

import time

names = ['Bob', 'Larry', 'Sean']
surnames = ['Baker', 'Holloway', 'Whitehorse']

for name, surname in zip(names, surnames):
    print(name)
    print(surname)
    time.sleep(3)
→ Ссылка
Автор решения: m_ocean

Согласен с принятым ответом, но вот, как добиться того же без использования zip:

assert len(names) == len(surnames)  # Убедится, что массивы одинаковой длины.
for i in range(len(names)):
    print(names[i])
    print(surnames[i])
→ Ссылка