[python, codereview] список всех пар в последовательности
А где здесь отличность между собой?
Да, я плохо сформулировал. Надо было: с неповторяющимися номерами в последовательности.
>>> allpairs( [ 1 ] )
[1]
не говоря уже о
>>> allpairs( [ 2, 3, 4 ] )
[(2, 3 (2, 4 3, 4]
и
>>> allpairs( [ 1, 2, 2 ] )
[(1, 2 (1, 2 2, 2]
в общем, да, можно написать ее как минимум правильно =)
Надо было: с неповторяющимися номерами в последовательности.тем не менее ошибка в проверке условия выхода остается. Да и для списка единичной длины тоже надо бы адекватнее реагировать.
2. Исправил
3. Плохо сформулировал условие насчет различности между собой
1. Мда. А лучше что выдавать?хз, пустой список. Ну либо исключение

>>> allpairs([2,3,4])
>>> [(2, 3 (2, 4 [3, 4]]
А как адекватнее?
А как адекватнее?не, ну тут все нормально же. Я про первый пункт говорил.
Да, пожалуй, пустой список будет лучше. Спасибо.
codereviewназвание темы ржачное

allpairs [] = []
allpairs (x:xs) = map (\y -> [x,y]) xs ++ (allpairs xs)
Как-то так.
Не питон, правда...
Прошу прощения за безграмотность: это Хаскель или ML?
Первое.
На ML будет как-то так:
let reс allpairs = function
| [] -> []
| x :: xs -> List.map (fun y -> [x; y]) xs @ allpairs xs
itertools.combinations(iterable, 2) — оно?
# combinations('ABCD', 2) --> AB AC AD BC BD CD
reference implementation
EDIT: я к тому, что если не меряться письками, а хотеть получить результат, то следует использовать эффективную, написанную на С библиотечную функцию. А для этого нужно знать свои библиотечные функции, а не меряться письками атакже изучать функциональные языки программирования!
О да, да, я очень хотеть получить результат!
а хотеть получить результат,
Но про itertools я не знал. Теперь знаю, спасибо. Меряться ничем не собирался

>>> allpairs([2,3,4])кстати, только сейчас заметил. Понятно, что адекватнее
>>> [(2, 3 (2, 4 [3, 4]]
А как адекватнее?
>>> allpairs([2,3,4])
>>> [(2, 3 (2, 4 (3, 4)]



Хотя вот с этим согласиться не могу:
Flat is better than nested.
Sparse is better than dense.
Оставить комментарий
july
Можно ли лучше записать функцию, которая выдает список всех отличных между собой пар элементов из заданного списка: