Форум сайта python.su
-2
py.user.nextЭто костылик, можно сделать так, чтобы в цикле итерировались элементы, начиная с первого. Зато не нужен доступ по индексу. Можно, конечно, написать так, но будет лишнее копирование массива.
элемент сравнивается с самим собой
prev = array[0] for i in array[1:]: if prev > i: #... prev = i
fata1exПривыкнув к ФП - вполне логично, только не очень эффективное.
FishHook, решение красивое, но слишком сложное :)
Офлайн
52
asilyatorФП - это функциональное программирование? zip? И после таких фраз вы всерьёз придираетесь к строению модуля re и языка вцелом?
Привыкнув к ФП - вполне логично, только не очень эффективное.
Офлайн
-2
Ну да, zip - это фп, а что? И при чем тут регекспы?
Офлайн
52
Видимо, я не понимаю чего-то. Объясните каким местом zip являет собой пример функционального подхода?
Вы про это что ли:
>>> a = [1, 2, 3] >>> b = [4, 5, 6] >>> zip(a, b) [(1, 4), (2, 5), (3, 6)] >>> map(None, a, b) [(1, 4), (2, 5), (3, 6)]
Отредактировано fata1ex (Июнь 3, 2012 23:53:45)
Офлайн
-2
Ну таким же, как и map, reduce, filter.
Офлайн
52
Ну и каша же у вас в голове. Почитайте SICP (старый, со Scheme), хотя бы первые несколько глав. Или хотя бы это.
Отредактировано fata1ex (Июнь 4, 2012 01:12:29)
Офлайн
-2
fatalex, я “это” уже читал. Или обясни, где же у меня каша, или хватит воду баламутить.
Офлайн
52
Мда. Откуда столько самомнения и уверенности, что вы умнее всех?
>>> def myzip(a, b): ... result = [] ... for idx in xrange(min(len(a), len(b))): ... result.append((a[idx], b[idx])) ... return result ... >>> myzip([1,2,3], [4,5,6]) [(1, 4), (2, 5), (3, 6)]
>>> myzip = lambda *args: [ tuple(arg[idx] for arg in args) for idx in xrange(min([len(arg) for arg in args] or (0,))) ]
Отредактировано fata1ex (Июнь 4, 2012 03:06:04)
Офлайн
857
asilyatorвот именно, что нужно создавать копию всего массива, либо вхолостую проверять первый элемент
Это костылик, можно сделать так, чтобы в цикле итерировались элементы, начиная с первого. Зато не нужен доступ по индексу. Можно, конечно, написать так, но будет лишнее копирование массива.
Отредактировано py.user.next (Июнь 4, 2012 05:26:52)
Офлайн
-2
fata1exУжасно приятно общаться со всякими снобами, которые при малейшем непонимании пытаются обосрать и обозвать нубом.
У вас нет даже базовых знаний, что почему-то компенсируется гонором . Ужасно неприятно общаться с такими людьми.
py.user.nextМожно и отмотать первый элемент. Зато в моем варианте не требуется индексируемость data.
вот именно, что нужно создавать копию всего массива, либо вхолостую проверять первый элемент
причём эта холостая проверка может послужить источником ошибки
например, при замене знака на >=
Офлайн