python - Python 3:字典不包含所有值
问题描述
我想在字典中保存一些值,但例如如果我输入“Password1234!” 我打印出我得到的字典:
{1: [5, -20], 7: [1.5, -10], 4: [2, -5]}
...我的“上限”价值和元素丢失了。我确定我错过了一些非常简单的东西,但我不明白,谢谢。这是我的代码:
password = input("password: ")
calculate(password)
def calculate(password):
quantity = 0
upper = 0
lower = 0
digit = 0
special = 0
for i in password:
quantity += 1
if i.isupper():
upper += 1
elif i.islower():
lower += 1
elif i.isdigit():
digit += 1
else:
special += 1
types_list = {
upper : [3, -10],
lower : [1.5, -10],
digit : [2, -5],
special : [5, -20]
}
print(types_list)
输出:{1: [5, -20], 7: [1.5, -10], 4: [2, -5]}
解决方案
我确定我错过了一些非常简单的东西,但我不明白,
字典键是唯一的。由于您有一个upper
字母和一个special
字符,因此有两个 keys 1
,因此您创建了 dict:
{
1 : [3, -10],
lower : [1.5, -10],
digit : [2, -5],
1 : [5, -20]
}
第二个键1
覆盖第一个键。
你的方案真的没有多大意义,你为什么使用计数作为字典键?
推荐阅读
- notepad++ - 使用 (Notepad++) 将行转换为列
- macos - 如何在 Rosetta 2 下运行的 x86_64 进程中以原始刻度(即 mach_absolute_time)获取系统时钟的真实值?
- python - 属于同一接口的类型提示类
- sql - 使用最近的行加入 BigQuery
- java - 如何检查变量的类型
- flutter - 颤振子道具正在改变父变量
- python-3.x - 在python中用脚本打开一个程序
- python - 使用 Web3 和 Python 在 Polygon 区块链上检测新的 PairCreated 事件
- css - R Markdown (Flexdashboard) 移动格式
- raspberry-pi - 如何配置 Xen 管理程序以在树莓派 4 的单独显示器(监视器)上显示来宾 VM?