python - 字典的长度不一样
问题描述
我在两个不同的字典中创建了一个加密密钥和一个解密密钥,但是我使用了一个 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
解决方案
问题是random.randint
可以重复滚动相同的数字,因此不同的数字x
将相同i
,并且cryptDict
将为现有密钥分配一个新的`carList[i]值,因此最终会更短。
而不是重复使用random.randint
,更好地使用random.shuffle
或random.choice
一次滚动所有内容x
而不会重复,然后迭代这些值。
推荐阅读
- python - 如何在不附加的情况下将完整输出写入python中的文件
- jboss - 如何将现有 Keycloak 用户链接/导出到 LDAP
- python - 有一个“这永远不会发生”的声明是一种好习惯吗
- php - PHP:关于清理 json $_POST 的说明
- python - 使用生成器从批量 .npy 文件中训练 Keras 模型?
- ios - UIView 到 UIImage 没有子视图和隐藏
- visual-studio-code - 为什么 vscode 要求保存更改?
- python - 综合组织几个由“或”连接的语句
- javascript - 使用 jest 获取测试
- java - 将 JavaFX ContextMenu 居中在屏幕中间?