@aab137

Как сделать это в одну строку?

Я романтик и хочу написать вот это в одну строку:
s = [input() for i in range(4)]
for i in range(4):
    for j in range(i+1, 4):
        print(s[i], s[j], sum(a!=b for (a, b) in [*zip(s[i], s[j])]))

Пытался использовать ламбду, но ничего правильного не вышло:
print((lambda s:
       ([(
           (s[i], s[j], sum(a != b for (a, b) in [*zip(s[i], s[j])]))
           for i in range(4) for j in range(i+1, 4)
       )])
       )
      (input() for i in range(4)))

Кто шарит, помогите!
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
@aab137 Автор вопроса
Ну что-то получилось вродебэ
print(*['{} {} {}'.format(*i) for i in (lambda s, a: (a, [[a.append((s[i], s[j], sum(a != b for (a, b) in [*zip(s[i], s[j])]))) for j in range(i+1, len(s))] for i in range(len(s)-1)]))([input() for i in range(4)], [])[0]], sep='\n')

Неясно только, лучшее ли это решение
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 150 000 до 200 000 ₽
OnederX Москва
от 100 000 до 120 000 ₽
Кенарий Санкт-Петербург
от 120 000 до 250 000 ₽