Вывести значения словаря через функции 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)
Результат остается без изменений.