Описание тега python-assignment-expression

Выражения присваивания (a:= b) - это новая синтаксическая структура, предложенная в PEP 572 и введенная в Python 3.8
0 ответов

Можно ли включить выражения присваивания в Python 3.7 с помощью __future__?

Есть ли способ проверить выражения присваивания PEP-572 в Python 3.7.x? В прошлом новая языковая функция была перенесена на более ранние версии Python с использованием from __future__ import, Есть ли один для выражения присваивания? Если да, как наз…
1 ответ

Как можно сделать оператор присваивания "x = y:= f(x)" при использовании выражений присваивания в Python?

Я читаю в Твиттере: #Python news: Гвидо принял PEP 572. У Python теперь есть выражения присваивания. if (match := (pattern.search) pattern.search(data)) is not None: print((match.group) mo.group(1)) filtered_data = [y for x in data if (y := f(x)) is…
1 ответ

С помощью выражений присваивания в Python 3.8, почему мы должны использовать `as` в`with`?

Теперь, когда принят PEP 572, Python 3.8 предназначен для использования выражений присваивания, поэтому мы можем использовать выражение присваивания в with написать вполне естественно выглядящий with f := open('file.txt'): for l in f: print(f) вмест…
6 ответов

Синтаксис и выражения присваивания ":=": что и почему?

PEP 572 представляет выражения присваивания, реализованные для Python 3.8. Это кажется действительно существенной новой функцией, поскольку она позволяет использовать эту форму назначения в пределах функций понимания и лямбда-функций. Что такое син…
3 ответа

Как переписать этот простой цикл, используя выражения присваивания, представленные в Python 3.8 alpha?

Мне кажется, что не очень просто обмениваться классическими циклами while с выражениями- присваиваниями -loops, чтобы код выглядел великолепно. Рассматривать example1: >>> a = 0 >>> while (a := a+1) < 10: ... print(a) ... 1 2 3 …
1 ответ

Понимание причины появления нового оператора python: =

Это своего рода вопрос метапрограммирования: я хотел бы понять, почему разработчики Python представили еще один оператор с новым := . Я знаю для чего это. Однако я хотел бы знать, почему разработчики выбрали новый символ вместо повторного использова…
3 ответа

Использование выражений присваивания Python 3.8 в качестве выражения let?

Мое предполагаемое поведение: >>> x = 0 >>> with (x := 1): print(x) 1 >>> print(x) 0 Однако я получаю ожидаемое AttributeError: __enter__ошибка. Есть ли простой способ добиться этого или что-то подобное, что позволяет мне …
3 ответа

Выражение присваивания Python 3.8 в понимании списка

Я впервые пытаюсь использовать новое выражение присваивания, и мне нужна помощь. Даны три строки выходных данных журнала: sin = """Writing 93 records to /data/newstates-900.03-07_07/top100.newstates-900.03-07_07/Russia.seirdc.March6-900.12.csv .. Wr…
1 ответ

Множественные условия для присвоения "моржового оператора"

Я хотел бы знать, можно ли использовать "оператор моржа" для присвоения значения на основе некоторых условий, а также существующих. Например, присвоить строкуpost_url если эта строка содержит некоторую подстроку: if post_url := data.get("Post url") …
2 ответа

выражения присваивания с условным выражением

Следующий фрагмент def expensive_function(x): return x x = 10.5 (int(y) if y.is_integer() else y := expensive_function(x)) поднимает SyntaxError: cannot use assignment expressions with conditional expression Можно ли не использовать выражения присва…
1 ответ

Как избежать утечки выражений присваивания Python в пониманиях

В книге " Эффективный Python" автор рекомендует использовать выражения присваивания, чтобы избежать избыточности в понимании, например: def fun(i): return 2 * i result = {x: y for x in [0, 1, 2, 3] if (y := fun(x)) > 3} вместо result = {x: fun(x)…
04 окт '20 в 12:23
3 ответа

Может ли выражение присваивания создавать ряды Фибоначчи, используя понимание списка?

С выражением присваивания я подумал, что могу попробовать составить список, чтобы создать Фибоначчи. Сначала я инициализирую список Фибоначчи из 5 элементов f = [1,2,3,4,5], где первые два значения являются начальными числами. Приведенный ниже тесто…
27 окт '20 в 08:39
0 ответов

Выражение присвоения без прямого использования

Я хотел бы по возможности ввести в свой код выражения присваивания, но я наткнулся на очень простой случай, для которого не нашел: На очень распространенном примере [(y := f(x), x/y) for x in some_iterable] Интересно, как не использовать y напрямую,…
30 сен '20 в 17:42
1 ответ

Порядок вычисления выражений присваивания (оператор моржа)

У меня есть такое выражение: >>> a = 3 >>> b = 2 >>> a == (a := b) False Теперь, a == 2после операции, как положено. И результат - это то, что я хотел бы, то есть сравнение с RHS назначения перед назначением. Изменение пор…
2 ответа

Выражения присваивания Python3.8, использование в понимании списка или как выражение

Недавно я обнаружил, что существуют выражения присваивания . И я хотел реорганизовать часть своего кода, чтобы использовать их. Большинство мест, где я хотел его использовать, было относительно просто преобразовать. Однако я не уверен в синтаксисе, …
01 окт '21 в 10:52
2 ответа

Истинные значения в списке

код Этот код сохраняет ваши любимые блюда в списке, но ввод превращается в символ типа bool. Почему это происходит и как это исправить? foods=list() while food := input("what food do you like?: ") != "quit": foods.append(food) print(foods)
31 окт '21 в 16:46
0 ответов

Вопрос в стиле оператора Walrus с использованием примера кодирования бинарного поиска

Иногда я нахожу краткие выражения алгоритмической логики более интуитивными, чем длинные. Примером может служить бинарный поиск (wikipedia) с простой реализацией Python: def binary_search(A, L, R, T): while L != R: M = (L + R + 1) // 2 if A[M] > …
2 ответа

Морж для распаковки значений в понимании списка

У меня есть вложенный список, содержащий словари в виде таблицы сопоставления с использованием кортежа в качестве ключа. я изо всех сил пытаюсьzipсловарь вместе, чтобы Pandas мог экспортировать его в файл csv: l = [{('A', 'B'): 1}, {('A', 'C'): 2}, …
1 ответ

Попытка решить проблему с кодом twoSums leet, почему оператор моржа с dict.get() не работает в python3

Подсказка: Дан массив целых чисел nums и целое число target, верните индексы двух чисел так, чтобы в сумме они составляли target. Вы можете предположить, что каждый вход будет иметь ровно одно решение, и вы не можете использовать один и тот же элеме…
0 ответов

Выражение, которое возвращает измененный список

Я ищу одно выражение, мутирую элемент и возвращаю измененный список Далее немного подробно # key=0; value=3; rng=[1,2] [(v if i != key else value) for i, v in enumerate(rng)] Изменить : Я ищу способ встроить следующую функцию в одно выражение def re…