Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

Помогите решить задачу по программированию через Python пожалуйста

Me1issa Ученик (170), открыт 2 недели назад
Данные об email-адресах учеников хранятся в словаре:

emails = {'mgu.edu': ['andrei_serov', 'alexander_pushkin', 'elena_belova', 'kirill_stepanov'],

'gmail.com': ['alena.semyonova', 'ivan.polekhin', 'marina_abrabova'],

'msu.edu': ['sergei.zharkov', 'julia_lyubimova', 'vitaliy.smirnoff'],

'yandex.ru': ['ekaterina_ivanova', 'glebova_nastya'],

'harvard.edu': ['john.doe', 'mark.zuckerberg', 'helen_hunt'],

'mail.ru': ['roman.kolosov', 'ilya_gromov', 'masha.yashkina']}

Нужно дополнить код таким образом, чтобы он вывел все адреса в алфавитном порядке и в формате имя_пользователя@домен.

При решении использовать генератор словарей.
1 ответ
Папа Мудрец (18760) 2 недели назад
Довольно просто:
 emails = {
'mgu.edu': ['andrei_serov', 'alexander_pushkin', 'elena_belova', 'kirill_stepanov'],
'gmail.com': ['alena.semyonova', 'ivan.polekhin', 'marina_abrabova'],
'msu.edu': ['sergei.zharkov', 'julia_lyubimova', 'vitaliy.smirnoff'],
'yandex.ru': ['ekaterina_ivanova', 'glebova_nastya'],
'harvard.edu': ['john.doe', 'mark.zuckerberg', 'helen_hunt'],
'mail.ru': ['roman.kolosov', 'ilya_gromov', 'masha.yashkina']
}

addr = map(
lambda k: list(map(lambda name: name + '@' + k, emails[k])),
emails
)

print('\n'.join(sorted(sum(addr, []))))
Даже без functools удалось обойтись. Не думал, что sum может конкатенировать списки :-)
Хотя, свёртка в процессе обработки была бы эффективнее, но зато так записывается короче.

Вывод после запуска:
 alena.semyonova@gmail.com
alexander_pushkin@mgu.edu
andrei_serov@mgu.edu
ekaterina_ivanova@yandex.ru
elena_belova@mgu.edu
glebova_nastya@yandex.ru
helen_hunt@harvard.edu
ilya_gromov@mail.ru
ivan.polekhin@gmail.com
john.doe@harvard.edu
julia_lyubimova@msu.edu
kirill_stepanov@mgu.edu
marina_abrabova@gmail.com
mark.zuckerberg@harvard.edu
masha.yashkina@mail.ru
roman.kolosov@mail.ru
sergei.zharkov@msu.edu
vitaliy.smirnoff@msu.edu
Miras KuzhakulovУченик (145) 2 недели назад
Молодец, я тоже изучаю питон, но скрипты и коды писать не умею. За то научился их читать и понимать.
Егор ПрокопенкоУченик (147) 1 неделю назад
так на иннополисе фанктулс мы не изучали
Егор Прокопенко Ученик (147) еще
Похожие вопросы