Вывести значения словаря через функции Python

У меня есть список со словарями. Я хочу сделать функции, которые будут как-то обрабатывать значения ключей и выводить их на экран. Я написал код, который работает с одним словарём.

friend = {'name': 'Егор', 'age': 20, 'city': 'Москва'}

def name():
    name_friend = friend['name']
    return name_friend 

def age():
    age_friend = friend['age']
    return age_friend

def city():
    city_friend = friend['city']
    return city_friend

def print_friend(name, age, city):
    print(name, age, city)

print_friend(name(), age(), city())

Для списка словарей я переделал функции, но выводится информация только из первого словаря.

friends = [{'name': 'Егор', 'age': 20, 'city': 'Москва'}, {'name': 'Алина', 'age': 25, 'city': 'Казать'}, {'name': 'Дима', 'age': 23, 'city': 'Калининград'}]

def name():
    for name_friend in friends:
        name_friend = name_friend['name']
        return name_friend 

def age():
    for age_friend in friends:
        age_friend = age_friend['age']
        return age_friend

def city():
    for city_friend in friends:
        city_friend = city_friend['city']
        return city_friend

def print_friend(name, age, city):
    print(name, age, city)

print_friend(name(), age(), city())

Как правильно сделать чтобы выводилась информация со всех словарей?

Сейчас я получаю

Егор 20 Москва

А надо получить

Егор 20 Москва
Алина 25 Казань
Дима 23 Калиниград

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

Автор решения: Hydro_genium
friends = [{'name': 'Егор', 'age': 20, 'city': 'Москва'}, {'name': 'Алина', 'age': 25, 'city': 'Казать'}, {'name': 'Дима', 'age': 23, 'city': 'Калининград'}]

def name():
    name = []
    for name_friend in friends:
        name.append(name_friend['name'])
    return name 

def age():
    age = []
    for age_friend in friends:
        age.append(age_friend['age'])
    return age

def city():
    city = []
    for city_friend in friends:
        city.append(city_friend['city'])
    return city

def print_friend(name, age, city):
    for i in range(len(name)):
        print(name[i], age[i], city[i])

print_friend(name(), age(), city())

Результат:

Егор 20 Москва
Алина 25 Казать
Дима 23 Калининград
→ Ссылка
Автор решения: passant
def name(friend):
    name_friend = friend['name']
    return name_friend 

def age(friend):
    age_friend = friend['age']
    return age_friend

def city(friend):
    city_friend = friend['city']
    return city_friend

def print_friend(name, age, city):
    print(name, age, city)

for fr in friends:
    print_friend(name(fr), age(fr), city(fr))

Результат:

Егор 20 Москва
Алина 25 Казать
Дима 23 Калининград

Если вдруг почему-то функцию вывода обязательно надо вызывать ровно один раз, то последние четыре строчки заменяются на

def print_friend(friends):
    for fr in friends:
        print(name(fr), age(fr), city(fr))

print_friend(friends)

Результат остается без изменений.

→ Ссылка