python - 如何列出具有排除项的字典中的键数
问题描述
对“总”输出感兴趣,以反映与 if 语句中的条件匹配的新键的计数。如果您还能够提供有关如何显示由于 if 语句而没有返回多少键的说明,那将很有帮助。
d = {1:0.3246, 2:3.222, 3:3344, 2:0.3444, 5:1.09, 6:222.3}
for key in list(d)[:4]:
if key == 2:
continue
print(key, d[key])
keyresults = key
print('Total unique keys found:', keyresults)
预期成绩:
1 0.3246
3 3344
5 1.09
Total unique keys found: 3
Total unique keys not found: 2
实际结果:
1 0.3246
3 3344
5 1.09
Total unique keys found: 5
解决方案
您声明的字典是按顺序“分配”的。当该键被新值重用时,python解释器会删除该键的旧值并用新值替换它。因此,您不能将相同的值映射到两个键。但是,defaultdict 可以帮助您处理两个关键场景。在这种情况下,用于set
获取唯一可识别的键并标记重复项。现在,话虽如此,哪一个是真实的,哪一个是重复的,完全有待解释。
在这里,default-dict 的工厂是列表,其中值被创建为列表。
from collections import defaultdict
d=defaultdict(list)
for k,v in l:
d[k].append(v)
dict(d)
{1: [111, 'aaa'], 2: [222, 'bbb'], 3: [333, 'ccc']}
推荐阅读
- python - 创建单行数据框
- java - 为什么我在 main 方法中没有使用 setter 时会收到 NullPointerException?
- entity-framework - 无法使用 .NET Core 3.0 和 Entity Framework 访问 Database.SetInitializer()
- powershell - 使用嵌入式 XAML GUI 更改 Powershell 脚本中的标题栏图标
- javascript - react.js中如何高效处理大文件
- python - 打印函数的优化参数以拟合数据
- ios - 不同 UI 元素的 SwiftUI 列表 - 失败
- java - 如何在 VS Code 中设置 JAVA 环境变量
- python - 为 Windows 执行多个 python 文件的脚本
- php - Codeigniter force_download 在大型 Zip 文件上失败