首页 > 解决方案 > 字典的长度不一样

问题描述

我在两个不同的字典中创建了一个加密密钥和一个解密密钥,但是我使用了一个 for 循环,如下所示:

我尝试反转相同的问题,我尝试使用 value 来搜索并打印密钥,但它对我不起作用

encryptDict = {} 
cryptDict = {}
for i in range(len(charList)):
    x = random.randint(1,93)
    encryptDict.setdefault(charList[i], x)
    cryptDict.setdefault(x, charList[i])

我希望字典的长度相同,但我得到不同的长度。这是一个问题,因为加密是通过字符替换。字符长度为 93

标签: pythonpython-3.xdictionary

解决方案


问题是random.randint可以重复滚动相同的数字,因此不同的数字x将相同i,并且cryptDict将为现有密钥分配一个新的`carList[i]值,因此最终会更短。

而不是重复使用random.randint,更好地使用random.shufflerandom.choice 一次滚动所有内容x而不会重复,然后迭代这些值。


推荐阅读