Вывод элементов списка словарей по нескольким условиям
Я новичoк в Python, помогите решить задачу, застрял У вас есть информация по пользователям, которая хранится в users_info. Каждый элемент списка — это словарь с данными пользователя.
Выведите имена и id всех пользователей, удовлетворяющих следующему условию: возраст больше 35 лет, в браке и без детей.
users_info = [
{'id': 111, 'name': 'Ирина', 'age': 40, 'has_children': False, 'is_married': True},
{'id': 121, 'name': 'Надежда', 'age': 20, 'has_children': False, 'is_married': False},
{'id': 131, 'name': 'Степан', 'age': 21, 'has_children': False, 'is_married': False},
{'id': 141, 'name': 'Константин', 'age': 65, 'has_children': True, 'is_married': False},
{'id': 151, 'name': 'Мария', 'age': 52, 'has_children': True, 'is_married': True},
{'id': 161, 'name': 'Валерия', 'age': 38, 'has_children': False, 'is_married': False},
{'id': 171, 'name': 'Александр', 'age': 29, 'has_children': True, 'is_married': True},
]
Ответы (3 шт):
Автор решения: Проста Miha
→ Ссылка
Я никогда не изучал Python, но с помошь знания других языков я пришёл к этому решению:
for val in users_info:
if val['age'] > 35 and val['has_children'] == False and val['is_married'] == True :
print(val)
Автор решения: assert
→ Ссылка
Пройдитесь по телу массива обращаясь к ключам
print('\n'.join([f"id : {i.get('id')} Имя : {i.get('name')}" for i in users_info if i.get('age') > 35 and not(i.get('has_children')) and i.get('is_married')]))
Автор решения: D.Vinogradov
→ Ссылка
from operator import itemgetter
print(*[itemgetter('id', 'name')(j) for j in [i for i in users_info if (i.get('age') > 35 and i.get('has_children') ==
False and i.get('is_married') ==True)]])
>>>
(111, 'Ирина')