Как сделать чтобы функция возвращала все элементы при использовании цикла for?
Помогите, как сделать чтобы функция возвращала все элементы при использовании цикла for?
a = ['ad','adwt',3,4,5,6,7]
def get(a):
for i in a:
return i
def main():
print(get(a))
main()
Ответы (2 шт):
Автор решения: Shamus Rezol
→ Ссылка
Как на счет генераторов? Используйте yield вместо return чтобы функция возвращала генератор.
def get(a):
for i in a:
yield i
# get(a)
# <generator object ...>
Автор решения: MarianD
→ Ссылка
a = ['ad','adwt',3,4,5,6,7]
def get(a):
return '\n'.join([str(i) for i in a])
def main():
print(get(a))
main()
Вывод:
ad adwt 3 4 5 6 7
Объяснение:
[str(i) for i in a]
создает список элементов списка a переведенных в строки, и затем
'\n'.join([str(i) for i in a])
соединит все элементы этого списка в одну строку, но с символом '\n' между элементами списка.
Функция print() выведет эту строку — благодаря знаком '\n' - как элементы списка a, строку после строки.
Примечание:
Вместо
[str(i) for i in a]
возможно использовать стандартную функцию map():
map(str, a)