如何使用“for”循环创建变量名?

新手上路,请多包涵

我知道我的标题可能有点令人困惑,但我无法描述我的问题。基本上,我需要创建一堆变量,它们都等于 0 ,我想用 for 循环来做到这一点,所以我不必硬编码。

问题是每个变量都需要有一个不同的名称,当我从我的 for 循环中调用数字来创建变量时,它无法识别我想要的数字 for 循环。这是一些代码,这样更有意义:

 total_squares = 8
box_list = []
for q in range(total_squares):
  box_q = 0
  box_list.append(box_q)

我需要它来创建 box_1 并将其添加到列表中,然后创建 box_2 并将其添加到列表中。只是它认为我正在调用变量 box_q ,而不是调用 for 循环中的数字。

原文由 Logan Holmes 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

动态创建变量是一种 反模式,应该避免。你需要的实际上是一个 list

 total_squares = 8
box_list = []
boxes = [0] * total_squares
for q in range(total_squares):
  box_list.append(boxes[q])

然后您可以使用以下语法引用您想要的任何元素(例如 box_i ):

 my_box = box_list[boxes[i]]

原文由 Selcuk 发布,翻译遵循 CC BY-SA 4.0 许可协议

你可以用字典。我认为这种方法更好,因为您可以看到键值对。

代码

total_squares=8
box_list={}
for q in range(total_squares):
    box_list['box_'+str(q)]=0

print(box_list)

输出

{'box_0': 0, 'box_1': 0, 'box_2': 0, 'box_3': 0, 'box_4': 0, 'box_5': 0, 'box_6': 0, 'box_7': 0}

原文由 user9221519 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题