@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)))

Кто шарит, помогите!
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 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')

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

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

Похожие вопросы
23 нояб. 2024, в 22:03
3000 руб./за проект
23 нояб. 2024, в 21:53
30000 руб./за проект
23 нояб. 2024, в 21:49
1000 руб./в час