Описание тега generator-expression
A syntactic construct in Python providing a concise way to create a generator object, with syntax similar to a list comprehension.
1
ответ
Пропустить запись в выражении генератора
Каков наилучший способ пропустить записи в выражении генератора, созданные с использованием функции и другого генератора? По сути, я ищу выражение, которое выглядит так: some_iter = (some_function(_x, _y, **kwargs) or continue for _x, _y in some_gen…
24 сен '18 в 20:49
1
ответ
Можно ли изменить это выражение генератора, чтобы оно соответствовало результату цикла?
Рассмотрим это для цикла: y = [] for z in ('a', 'b\nc', 'd'): y.extend(z.splitlines()) Плоский список y не получен аналогичным образом y = [] y.extend(z.splitlines() for z in ('a', 'b\nc', 'd')) Можно ли изменить выражение генератора, чтобы оно возв…
25 июл '14 в 20:33
3
ответа
Как использовать уменьшить / карту / список понимания для суммирования?
У меня есть уравнение выше, и я хочу вычислить сумму, подчеркнутую красным, и [ρ0,ρ1,ρ2,...,ρN] - это список для начала. Цикл for, безусловно, может решить проблему. Но мне было интересно, есть ли более лаконичный питонический стиль для этого. Я поп…
06 мар '15 в 15:28
2
ответа
Повторное использование выражений генератора
Выражения генератора - чрезвычайно полезный инструмент, имеющий огромное преимущество по сравнению со списками, заключающимися в том, что он не выделяет память для нового массива. Проблема, с которой я сталкиваюсь с выражениями генератора, что в ито…
23 мар '18 в 10:24
2
ответа
Выражение генератора, итератор доступа
Я пытаюсь escape элементы в списке, сверяя их с другим списком элементов. Я могу отфильтровать список: @staticmethod def escapeFrameData(frameData): toEscape = [0x7e, 0x7d, 0x11, 0x13] genExpr = (x for x in frameData if x in toEscape) for x in genEx…
21 фев '14 в 17:48
3
ответа
Различия между генераторами выражений понимания
Насколько я знаю, есть три способа создания генератора посредством понимания 1. Классический: def f1(): g = (i for i in range(10)) yield вариант: def f2(): g = [(yield i) for i in range(10)] yield from вариант (который поднимает SyntaxError кроме ка…
19 июл '17 в 12:32
0
ответов
Выражения генератора питона в определениях классов
Я пишу простой класс в Python 2.7.13, и я столкнулся с удивительной ошибкой: class X(object): T = 'test {}' A1 = [x for x in T] # ok A2 = tuple([x for x in T]) # ok A3 = tuple(x for x in T) # ok B1 = [T.format(x) for x in (1,2)] # ok B2 = tuple([T.f…
26 фев '18 в 18:31
1
ответ
Предупреждение об устаревании Python относительно функции sum
Я кодировал алгоритм, и он работал правильно до 2 недель назад. Я получаю это предупреждение, и я не могу понять, почему я его получаю. Предупреждение: "C: /Users/Administrator/Documents/Python/sezg_1_diffne.py: 147: DeprecationWarning: вызов np.sum…
04 фев '19 в 12:00
2
ответа
Более компактное понимание списка, где переменная итерации не используется
У меня есть несколько функций выборки, которые нужно вызывать определенное количество раз, как в следующей инструкции: samples = [do_sampling() for _unused in range(n_samples)] Интересно, есть ли более компактный способ выразить это утверждение, осо…
16 май '15 в 09:12
1
ответ
Получить соответствующий элемент из выражения генератора
Я написал if условие с выражением генератора. self.keyword_list = ['Buzz', 'Heard on the street', 'familiar with the development', 'familiar with the matter', 'Sources' ,'source', 'Anonymous', 'anonymity', 'Rumour', 'Scam', 'Fraud', 'In talks', 'Lik…
10 сен '15 в 09:32
4
ответа
Странный python для синтаксиса, как это работает, как он называется?
print max(3 for i in range(4)) #output is 3 Использование Python 2.6 3 сбивает меня с толку, вот моя попытка объяснить, что происходит. поскольку i в диапазоне (4) создает цикл, который повторяется 4 раза, увеличивая значение i от 0 до 3 в начале ка…
13 май '11 в 20:41
0
ответов
Я пытаюсь использовать списочный анализ с массивами numpy, генерируя одно выражение генератора в массиве numpy. Зачем?
Поэтому я пишу код, который будет развернут на Raspberry Pi. Из-за вычислительных ограничений Raspberry Pi и ряда шагов, которые он предпринимает для этого конкретного использования (захват и обработка изображений), я подумал, что будет лучше, если …
23 июн '17 в 19:17
5
ответов
Могу ли я использовать выражение генератора для печати пар ключ-значение из списка словарей?
У меня есть список словарей: dictlist = [{'key1':'value1', 'key2':'value2'}, {'key3':'value3', 'key4':'value4'}] Я в настоящее время печатаю ключ, пары значений, как это: for d in dictlist: for key in d: print .format('{} ---> {}').format(key,d[k…
26 май '16 в 21:41
1
ответ
Применить функцию n раз, используя все предыдущие результаты
Мне было интересно, есть ли питонный способ применить функцию несколько раз, когда все последние результаты снова вводятся с использованием понимания списка или выражения генератора вместо цикла for, подобного этому? import numpy as np def func(x, s…
19 ноя '17 в 12:13
0
ответов
Понимание списка и передача выражения генератора в список
Существует мнение, что понимание списка является синтаксическим сахаром для передачи выражения генератора в list ( 1, 2). Хотя я не могу точно определить внутреннюю динамику, чтобы доказать, что это не так, я смог показать, что между этими двумя мет…
28 авг '18 в 08:39
2
ответа
Объединение множеств Python вызывает TypeError
Рассмотрим последовательность множеств: >>> [{n, 2*n} for n in range(5)] [{0}, {1, 2}, {2, 4}, {3, 6}, {8, 4}] Передача их непосредственно в метод объединения дает правильный результат: >>> set().union({0}, {1, 2}, {2, 4}, {3, 6}, …
16 авг '18 в 07:31
1
ответ
Генератор Python в представлении словаря не выглядит лениво
Насколько я понимаю, выражения генератора python возвращают лениво оцененные понимания и видят объекты в словарях, которые обновляются при изменении базового словаря. Учитывая следующий код (Python 2.7.6 Windows): d = {} gt_three = (x for x in d.vie…
17 фев '14 в 11:27
2
ответа
Наличие выражения генератора в качестве входного аргумента в Python
Как я могу взаимодействовать со значениями выражения генератора? Например: def sumValues(*args): # compute the sum of values sumValues(abs(x) for x in range(0,10)) Когда диапазон известен (например, мы знаем, что диапазон равен [0,10)), мы можем пос…
12 фев '17 в 04:00
2
ответа
Инициализировать несколько списков в Python
a = 2 b = 3 c = 4 x = y = z = [0 for i in xrange(a*b*c)] Есть ли способ, которым x,y,z могут быть инициализированы в одной строке (потому что я не хочу умножать a, b и c для каждой инициализации списка), как отдельные списки из 0. В приведенном выше…
04 авг '16 в 10:12
2
ответа
Простой способ превратить генератор в понимание списка без дублирования кода в Python?
У меня есть что-то вроде этого: class TransMach: def __init__(self, machfile, snpfile): self.machfile = machfile self.snpfile = snpfile def __translines(self): fobj = open(self.machfile) lines = (l.strip().split()[2] for l in fobj) tlines = zip(*lin…
06 авг '13 в 11:07