Вы можете попробовать это вместо этого:
def show_magicians(magicians):
for magician in magicians:
yield(magician)
magicians = ["a", "b", "c", "d", "e","f", "g"]
for mag in show_magicians(magicians):
print(mag, end=' ')
Вместо того, чтобы проходить цикл и возвращать первую итерацию, это превратит ваш код в генератор, который вы можете поместить в другой цикл, как показано.Использование yield вместо return вернет каждый элемент в списке, затем перейдет к следующему элементу, затем вернет этот, следующий и т. Д. И т. Д.
На всякий случай, если вы не знаете end = ''в функции печати используется то, что используется для разделения каждого элемента при его возврате.Поиграйте с ним, заменив '' на ',' или '\ n' и т. Д. Для получения других результатов.Вы даже можете добавить результаты в новый список и распечатать, который вместо этого, как показал sarkamedo, опять же, в итоге вы получите копию оригинального списка.