如何让程序随机选取列表中的整型变量本身而非其值以直接修改变量?
解决方案
Python中的整数属于不可变类型,你将a、b、c、d存入列表时,列表实际存储的是整数对象的引用,而非变量本身,所以直接取出无法修改原变量的值,可以用以下两种常用方案实现需求:
方案1:用可变容器包装整数
把每个整数存入单元素列表(列表是可变类型),修改时操作列表内的元素即可:
import random # 用单元素列表存储原始数值 a = [0] b = [0] c = [0] d = [0] num_list = [a, b, c, d] # 直接修改选中的元素 random.choice(num_list)[0] += 2 # 验证:原变量a/b/c/d中的某一个值已经更新 print(a[0], b[0], c[0], d[0])
方案2:用字典存储变量映射
如果不需要单独声明a/b/c/d变量,直接用字典存储所有值,随机选取键后修改对应值即可,写法更简洁:
import random var_dict = { "a": 0, "b": 0, "c": 0, "d": 0 } # 随机选键并修改值 selected_key = random.choice(list(var_dict.keys())) var_dict[selected_key] += 2 # 验证 print(var_dict)
注意:不要使用
list作为变量名,它是Python的内置类型关键字,重名会覆盖原有功能。
内容的提问来源于stack exchange,提问作者Hey
相关产品推荐
相关产品推荐

