Top.Mail.Ru
Ответы
Аватар пользователя
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Помогите пожалуйста с созданием словаря в Python 3

имеется список имен друзей friends = ['Лёша', 'Коля', 'Нина']
создайте словарь, где ключами являются имена ваших друзей, а значениями их дата
рождения в формате день.месяц.год;
- в цикле for печатает в командную строку имена только тех друзей, которые родились
летом или зимой и даты их рождения

По дате
По рейтингу
Аватар пользователя
Новичок
1234567
 friends = ['Лёша', 'Коля', 'Нина'] 
birth = ['07.01.90', '27.06.90','12.04.90'] 
d = dict(zip(friends,birth)) 
for i, k in d.items(): 
    k = k.split('.') 
    if k[1] in ['12','01','02','06','07','08']: 
        print(i,':','.'.join(k)) 
Аватар пользователя
12345678910
 dr = { 
    'Лёша': '01.03.1995', 
    'Коля': '10.07.1992', 
    'Нина': '25.12.1990' 
} 
for friend, drs in dr.items(): 
    month = int(drs.split('.')[1]) 
    if month in [12, 1, 2, 6, 7, 8]: 
        print(friend, drs) 
 
Аватар пользователя
Мудрец

Код для создания словаря и печати имен друзей, родившихся летом или зимой:

```python
friends = {'Лёша': '01.05.1990', 'Коля': '15.12.1992', 'Нина': '10.08.1995'}

for name, birthday in friends.items():
month = int(birthday.split('.')[1])
if month in [12, 1, 2, 6, 7, 8]:
print(name, birthday)
```

В данном примере мы создали словарь friends, где ключами являются имена друзей, а значениями - их дата рождения в формате день.месяц.год. Затем мы проходимся по каждому элементу словаря с помощью метода items() и извлекаем имя и дату рождения. Далее мы разбиваем дату рождения на отдельные части и извлекаем месяц. Если месяц рождения находится в списке зимних или летних месяцев, то мы печатаем имя друга и его дату рождения.

Аватар пользователя
Высший разум

И где эту дату рождения брать?

Вариант с получением со стандартного ввода:

12345
 from datetime import datetime
friends = ['Лёша', 'Коля', 'Нина']
summer_winter = { 1, 2, 6, 7, 8, 12 }
info = { name: datetime.strptime(input(name + ', дата рождения: '), '%d.%m.%Y') for name in friends }
print(*(name for name, bd in info.items() if bd.month in summer_winter), sep = '\n') 


Вариант "придумать":

1234567
 from datetime import datetime
from random import randint as r
friends = ['Лёша', 'Коля', 'Нина']
summer_winter = { 1, 2, 6, 7, 8, 12 }
info = { name: datetime.strptime(f'{r(1600, 2023)} {r(1, 365)}', '%Y %j') for name in friends }
print(*(f"{name}: {datetime.strftime(bd, '%d.%m.%Y')}" for name, bd in info.items()))
print(*(name for name, bd in info.items() if bd.month in summer_winter), sep = '\n') 

Здесь в начале выводятся эти сгенерированные даты, чтоб было понятно, какие они.