Python Перебор переменных - PullRequest
0 голосов
/ 05 февраля 2020

Я хочу написать для l oop, который перебирает переменные и обновляет их значения. например:

x = 1
y = 1
for varNames in [x,y]:
    varNames = varNames + 1
print(x)
print(y)

Здесь я хочу, чтобы функция напечатала значение 2 как для x, так и для y, но мои выходные данные все еще равны 1. Это происходит потому, что переменная varNames обновляется, но не x и y. Как мне обновить значения для фактических имен переменных x и y?

Спасибо за помощь!

Ответы [ 2 ]

4 голосов
/ 05 февраля 2020

На глобальном уровне (т.е. не внутри функции) вы можете сделать это, используя функцию globals ().

x = 1
y = 1
for varName in ["x","y"]:
    globals()[varName] += 1
print(x) # 2
print(y) # 2

Однако, если вам нужно сделать что-то подобное в вашей программе, вы можете узнать больше о списках и словарях, которые были бы предпочтительным подходом.

data = dict()
data["x"] = 1
data["y"] = 1
for varName in data:
    data[varName] = data[varName] + 1
print(data["x"]) # 2
print(data["y"]) # 2
0 голосов
/ 05 февраля 2020

Вы можете просто создать список, содержащий переменные, а затем вы можете перебрать их и распечатать каждый объект списка.

x = 1 
y = 3
mylist=[x,y]
for index in mylist:
    print(index)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...