PYTHON:“While”用递增的名称和值填充dict

PYTHON:“While”用递增的名称和值填充dict,python,dictionary,while-loop,Python,Dictionary,While Loop,我一直在扯我的头发在这一点上。。。在互联网上搜索答案,我发现最好的办法就是为字典制作一个单独的文件,并在需要时导入。然而,由于我很固执,我想用python风格来填充它 所以,快速解释一下。我想制作一个自定义字典,在dict中生成X个条目,格式为{Value_1:1},下一个条目为{Value_2:2}。但是,如果我想要100个条目,我不想复制并粘贴整个。脚本启动时更新,而是有一个自定义函数,其中可以调整下面代码中的值_max,并制作一个自定义大小的预制dict。名称是保持不变的部分,我不需要定制

我一直在扯我的头发在这一点上。。。在互联网上搜索答案,我发现最好的办法就是为字典制作一个单独的文件,并在需要时导入。然而,由于我很固执,我想用python风格来填充它

所以,快速解释一下。我想制作一个自定义字典,在dict中生成X个条目,格式为{Value_1:1},下一个条目为{Value_2:2}。但是,如果我想要100个条目,我不想复制并粘贴整个。脚本启动时更新,而是有一个自定义函数,其中可以调整下面代码中的值_max,并制作一个自定义大小的预制dict。名称是保持不变的部分,我不需要定制,只需要在名称后面添加_增加的_编号_,但我只希望dict具有指定数量的条目。实现这一点的其他方法是受欢迎的,我希望能够提取一个特定的值,比如说80,并将其打印为值_80。提前谢谢你

无论如何,我的尝试失败得很惨:

value_max = 10
dict_point = 1
custom_dict = {}
current_value = 1
value_name = "Example"
value_number = 1 
value_num_str = str(value_number)

test_a = custom_dict
print(test_a)

while dict_point <= value_max:
    custom_dict.update({value_name + value_num_str:current_value})
    value_number += 1
    current_value += 1
    dict_point += 1

test_b = custom_dict
print(test_b)
测试_a的输出为{} 测试_b的输出为{Example_1:10}

您忘记再次将值转换为字符串,因此它会不断更新相同的值

value_max = 10
dict_point = 1
custom_dict = {}
current_value = 1
value_name = "Example"
value_number = 1 
value_num_str = str(value_number)

test_a = custom_dict
print(test_a)

while dict_point <= value_max:
    custom_dict.update({value_name + value_num_str:current_value})
    value_number += 1
    value_num_str = str(value_number)
    current_value += 1
    dict_point += 1

test_b = custom_dict
print(test_b)
在代码顶部定义一次value\u num\u str。此时,value_num_str指向字符串1

您需要在while循环中设置赋值\u num\u str=strvalue\u num,或者更有效地在update调用中设置赋值。否则它的价值永远不会改变。由于update方法在密钥已经存在的情况下替换字典条目,因此最终会得到字典中相同的条目

只需将更新行编写为


应该这样做。

我不知道为什么需要使用这么多变量来跟踪事情。这是我的简化代码,可以满足您的需要

value_name = "Example"
custom_dict = {}
dict_point = 1
value_max = 10

while dict_point <= value_max:
    custom_dict[value_name + "_{}".format(dict_point)] = dict_point
    dict_point += 1

test_b = custom_dict
print(test_b)

这是所有答案中最好的,非常简单,谢谢!它创造了奇迹。你能不能给我解释一下自定义dict[…]=dict\u point是如何工作的,因为我不明白为什么它工作得这么好。。。谢谢在大多数语言中,方括号[和]之间的字符串是用于访问字典中项目的键。因此,在本例中,我们每次通过循环设置键及其值,因为python允许您创建新项(如果它不存在),所以我们可以执行上面所做的操作。{}大括号用于替换字符串。我们也可以这样做:custom_dict[{}}{}.formatvalue_name,dict_point]=dict_point谢谢你的解释,将来肯定会派上用场的:那很简单,谢谢我在以后的项目中将记住这一点!谢谢你的回答:谢谢你,下面和上面的答案为我解决了这个问题,但我会记住这一点,当编码未来的项目。谢谢你的回答^-^
value_name = "Example"
custom_dict = {}
dict_point = 1
value_max = 10

while dict_point <= value_max:
    custom_dict[value_name + "_{}".format(dict_point)] = dict_point
    dict_point += 1

test_b = custom_dict
print(test_b)