Tag: питона

Python (yield): все пути от листьев до корня в дереве

Я хочу генерировать все пути от каждого листа до корня в дереве. Я хотел бы сделать это с генераторами, чтобы сохранить память (дерево может быть большим). Вот мой код: def paths(self, acc=[]): if self.is_leaf(): yield [self.node]+acc for child in self.children: child.paths([self.node]+acc) Но это не сработает. Зачем? Вызывается с корнем, он пересекает дерево сверху вниз, собирая […]

: как реализовать срез в python3?

Я прочитал что-нибудь о slice в python3. Затем я написал программу, пытающуюся реализовать getitem (self, slice (s)). Код идет ниже: class NewList: def __init__(self, lst): print('new list') self._list = lst def __getitem__(self, x): if type(x) is slice: return [ self._list[n] for n in range(x.start, x.stop, x.step) ] #error? else: return self._list[x] … nl1 = NewList([1,2,3,4,5]) […]

Какая версия API-интерфейса ткани установлена

Как я могу узнать, какую версию ткани я установил – через API? Я понимаю, что могу просто запустить $ fab –version но я бы предпочел сделать что-то вроде >>> import fabric >>> fabric.version '1.4.1'

Рекурсивные генераторы

Время от времени я нахожу, что пишу рекурсивные генераторы в Python. Вот недавний пример : def comb(input, lst = [], lset = set()): if lst: yield lst for i, el in enumerate(input): if lset.isdisjoint(el): for out in comb(input[i+1:], lst + [el], lset | set(el)): yield out for c in comb([[1, 2, 3], [3, 6, 8], […]

Pyramid login и logout page return 404, остальная часть приложения работает нормально

Я новичок в Pyramid, и я следую этому руководству: http://docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/wiki2/authorization.html В Django просмотры и URL-адреса либо работали, либо разбивались, но я никогда не сталкивался с ситуацией, когда веб-страница, которая четко определена как в views.py, так и в urls.py, вызывается ошибка 404, это никогда не случалось со мной , Если с кем-то было что-то не так, […]

Использование Yield и возврат списка ошибок

У меня есть часть кода (синтаксический анализатор xls), который выполняет некоторую проверку в полях и возвращает с выходом генератор, содержащий каждую строку xls. Теперь мне нужно собрать ошибки проверки в списке и использовать их, когда генератор исчерпан. Это часть кода, представляющая парсер и плохое решение. error_list = [] def gen(limit): #xls parser for x in […]

Выход только один раз за итерацию

Я пытаюсь сделать преобразования типов с помощью генератора, но я хочу перейти к следующему элементу в итераторе, как только я успешно дам значение. Моя текущая попытка даст несколько значений в тех случаях, когда выражения успешны: def type_convert(data): for item in data: try: yield int(item) except (ValueError, TypeError) as WrongTypeError: pass try: yield float(item) except (ValueError, […]

Выход Python против доходности Ruby

В Ruby ключевое слово yield используется для обеспечения закрытия блоков выполнения. Как это ключевое слово отличается на языке Python?

Операторы неравенства Питона; сравнение списков

Проблемы с пониманием поведения Python при использовании операторов неравенства для сравнения списков. Вот фрагмент с использованием интерпретатора командной строки python3: >>> [8] < [7] False >>> [8] < [9] True >>> [8, 6] < [9] True >>> [8, 6] < [9, 7] True # So far so good >>> [8, 6] < [9, 5] True […]

безопасность потока генератора питона с использованием Keras

Я использую Keras для некоторого ML и имею этот генератор для данных и меток: def createBatchGenerator(driving_log,batch_size=32): batch_images = np.zeros((batch_size, 66, 200, 3)) batch_steering = np.zeros(batch_size) while 1: for i in range(batch_size): x,y = get_preprocessed_row(driving_log) batch_images[i]=x batch_steering[i]=y yield batch_images, batch_steering Когда я использую его локально, он работает нормально, но когда я запускаю его на AWS g2.2xlarge […]

Python - лучший язык программирования в мире.