Можно ли как то сократить код на 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()