更改列表内的变量的值而无需直接引用该变量

时间:2019-06-26 15:44:11

标签: python

我有大量的变量,每个变量都需要分配一个随机值。

我一直在尝试更改变量的值,而不必将每个变量单独更改为选定的随机值。

但是,似乎我没有正确地处理此问题。

Whales = 0

List = [Whales]

a = random.randint(1,10)

List[0] = a

显然,这会将List的0插槽更改为a,而不是将Whales的变量更改为a,因此我想知道如何在不直接添加类似内容的情况下进行操作:Whales = a

2 个答案:

答案 0 :(得分:1)

也许您可以将“变量”存储在字典中。像

import random

vars = ['whales', 'cats']
vars_dict = {v: random.randint(1, 10) for v in vars}
print(vars_dict)

输出

{'whales': 3, 'cats': 5}

答案 1 :(得分:0)

如果确实需要它们作为变量,则可以使用字符串按名称访问它们。否则,去字典。

Whales = 6
var_list = ['Whales']
globals()[var_list[0]]
>>> 6
globals()[var_list[0]] = 7
globals()[var_list[0]]
>>> 7