Можно ли как то сократить код на Python, который я напишу в основной части? Если можно, то как?

Можно ли как то сократить этот код? Если да, то как?


favourite_languages = {
    'jen': ['Python', 'Ruby'],
    'sarah': ['C++'],
    'edward': ['Rudy', 'Go'],
    'phill': ['Python', 'C++']
    }
for name, languages in favourite_languages.items():
  for language in languages:
    if len(languages) < 2:
        print(f"\n{name.title()}'s favourite language is {language}")
if len(languages) >= 2:
    print(f"\n{name.title()}'s favourite languages are:")
    for language in languages:
        print(f'\t{language}')


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

Автор решения: vp_arth
favourite_languages = {
    'jen': ['Python', 'Ruby'],
    'sarah': ['C++'],
    'edward': ['Rudy', 'Go'],
    'phill': ['Python', 'C++']
    }

for name, languages in favourite_languages.items():
    print(f"\n{name.title()}'s favourite ", end='')
    if len(languages) == 1:
        print(f"language is {languages[0]}")
    elif len(languages) > 1:
        print("languages are:\n\t" + '\n\t'.join(languages))
    else:
        print('language is unknown')
→ Ссылка
Автор решения: Zhihar

Вам вот это что ли нужно?

favourite_languages = {
    'jen': ['Python', 'Ruby'],
    'sarah': ['C++'],
    'edward': ['Rudy', 'Go'],
    'phill': ['Python', 'C++']
    }

for name, languages in favourite_languages.items():
    if len(languages) < 2:
        print(f"{name.title()}'s favourite language is {languages[0]}")
    else:
        print(f"{name.title()}'s favourite languages are:", *map(lambda language: f'\t{language}', languages), sep='\n')
    print()

вот так даже получше:

for name, languages in favourite_languages.items():
    if len(languages) < 2:
        print(f"{name.title()}'s favourite language is {languages[0]}")
    else:
        print(f"{name.title()}'s favourite languages are:", *languages, sep='\n\t')
    print()

для единого стиля:

for name, languages in favourite_languages.items():
    if len(languages) < 2:
        print(f"{name.title()}'s favourite language is", *languages)
    else:
        print(f"{name.title()}'s favourite languages are:", *languages, sep='\n\t')
    print()
→ Ссылка