创建并添加一个增量键到字典?



我是python的新手,我一直无法通过各种谷歌搜索找到答案。本质上,我是在尝试通过函数向字典中添加一个新键。我需要这个函数创建一个唯一的键,每次它通过一个循环时都增加一个键。这些键的值将作为一个已经填写好的对象输入。

我想做的事情的例子:

dict = {}
looper = 0
While looper < 100:
dict[newkey1] = value
looper += 1

最终我需要的结果是一个字典,如下所示:

dict = {newkey1 : value1, newkey2 : value2, newkey3 : value3, ...}

这些值将由一个数学函数创建,并传递到脚本前面的值槽中。

我不确定我的问题是否有答案。我可能从一开始就把程序组织错了。

编辑* *大家好,非常感谢你们的回答。在通读了下面的答案并实现了其中的一些之后,我想我对自己在寻找什么有了更好的理解。

简而言之,这就是我所做的:我有一个叫做window的类。窗口有4个不同的属性。我希望用户将这些属性输入到一个新对象中。创建对象之后,我想将对象作为键存储在字典中。该值将被设置为0开始。然后,我将根据一个无关的数学方程更新该值。我需要做的是创建一个新的递增对象,如下所示:

win1 = Window(var1 = input("please input var1:", etc, etc, etc).

win1是我每次需要递增并保存到字典中的内容。这将只在终端中运行,因为我还没有自学GUI。

基本操作如下:

#user enters win1 and variables.
more_win = input("Do you have another window to enter?")
while more_win == "yes":
# this is where I dont know what to do
# program needs to generate a new object that is incremented
# and then stored within a dictionary having the value of that newly 
# incremented key be 0 EX(win1: 0, win2 : 0, etc, etc)
win2 = Window(var1 = input(...), etc, etc, etc)

我希望这有意义!我讨厌问一个愚蠢的问题,我只是不知道在这里谷歌什么。

作为第一次传递,这是您要查找的内容:

def add_value(dx: dict, new_value) -> dict:
max_key = int(sorted(dx.keys())[-1])
dx[max_key + 1] = new_value
return dx

这里有一些注意事项:

  • 它假设字典中的所有键都可以被解析为整型。否则,将失败。
  • 它对每个调用进行排序,这可能会耗费时间。

如果你能保证字典没有其他键被添加到它,你可能不需要一个函数:

original_dictionary: dict = ...
sorted_dictionary = {k: original_dictionary[k] for k in sorted(original_dictionary.keys())}
...
// Whenever you add a key
new_idx = sorted_dictionary.keys()[-1]
sorted_dictionary[new_idx] = new_value

这是因为在Python 3.7+中字典保留了它们的键排序顺序。

如果您希望每次都生成一个唯一的密钥,您可以通过导入python uuid包来执行以下操作:

import uuid
dict = {}
looper = 0
while looper < 100:
key = uuid.uuid4()
dict[key] = value
looper += 1
# output: 
# {UUID('b7feb1c6-f070-4424-968a-f73438bbf7a8'): Value 0,
# UUID('524db4db-aa2a-41af-b794-827f896b8101'): Value0 1,
# UUID('b1a67189-531f-4590-bd03-8d66f44b46b3'): Value0 2,..}

否则,如果您想创建一个每次递增的唯一键,您可以通过make loop as key执行以下操作:

dict = {}
looper = 0
while looper < 100:
key = looper
dict[key] = value
looper += 1

相关内容

  • 没有找到相关文章