#python #variables #increment
#python #переменные #увеличить
Вопрос:
В приведенном ниже коде я хочу создать список строк и передаю переменную min методу в качестве аргумента:
max_list = [1 , 2 , 3]
min = 0
output = ["{a} {b}".format(a=min, b=max) for max in max_list]
Тем не менее, я хочу увеличивать min каждый раз, когда я создаю объект списка.
Есть ли способ python для достижения того же результата с помощью оператора ? По-видимому, я не могу использовать min в этом случае, поскольку это код python.
Ожидаемый результат:
['0 1', '1 2', '2 3']
Комментарии:
1. пожалуйста, поделитесь своим ожидаемым результатом
2. Вы не должны использовать min или max в качестве имен переменных, поскольку это зарезервированные ключевые слова python. попробуйте сделать это практикой
3. Спасибо, я обращу на это внимание.
Ответ №1:
Вы не поделились своим ожидаемым результатом, так что это может быть не то, что вы хотели, но…
max_list = [1, 2, 3]
output = [f"{min} {max}" for min, max in enumerate(max_list)]
print(output)
Вывод:
['0 1', '1 2', '2 3']
Комментарии:
1. Большое вам спасибо, именно тот результат, который я хочу, так что я понимаю, что нет «простого способа»? как в C?
2. вы имеете в виду в python?, да
Ответ №2:
Во min
-первых, и max
являются неудачными именами переменных в python, поскольку они затеняют встроенные min
функции и max
функции. Что касается увеличения на 1, вы можете использовать itertools.count
следующий способ:
import itertools
max_list = [1 , 2 , 3]
mn = itertools.count(0)
output = ["{a} {b}".format(a=next(mn), b=mx) for mx in max_list]
print(output)
Вывод:
['0 1', '1 2', '2 3']
Комментарии:
1. Большое вам спасибо, плюс ответ выше, поэтому я могу использовать enumerate и itertools.count плюс next для достижения того же результата в C. Но позвольте мне быть жадным здесь, есть ли более простой способ сделать это? например, min в C для каждой итерации?
2. @heihei: Я этого не знаю, поскольку вы не объяснили это, я предположил, что вы имели
в виду в смысле JavaScript. Независимо от этого вам может быть полезно знать, что то, что вы использовали, вызывается в понимании списка python.
Ответ №3:
Начиная с Python 3.8, вы можете использовать выражение присваивания :=
. Но поскольку приращение произойдет до возврата результата выражения like min
, вам необходимо инициализировать min
-1
max_list = [1 , 2 , 3]
min = -1
output = ["{a} {b}".format(a=(min := min 1) , b=max) for max in max_list]