Python基础:dict字典-相同键名会导致后者对前者值的覆盖

我心中的一团火是不会熄灭的。


声明

仅作为个人学习使用,仅供参考


Question

代码功能可视作 对照生词表 统计生词个数

def text(new_words,ans):
    result = 0
    for i in new_words:
        if i in ans:
            result += ans[i]
    print(result)



new_words = ['a','b']
ans= {
    'a':1,
    'b':2,
    'a':3
}

text(new_words,ans)

输出:
5

这时有好奇的小朋友就会问了

字典ans 里 所有的值加起来不是 6 吗

为什么最后输出是 5?

Answer

在Python中,字典的键(key)必须是唯一的。当你尝试在字典ans中定义两个相同的键'a'时,后一个值会覆盖前一个值


在Python看来 我们的ans实际上就是 { 'a':3  , 'b':2 }  根本没有'a':1

我们手动print(ans) 发现 ans的顺序还是a在前,b在后 ,所以称为 覆盖

即 { 'a':3  , 'b':2 }


那么 我们字典的ans定义就是错误的 , 不应该出现相同的键名 

当然了,本文仅作为错误演示,预防以上错误发生。

相关推荐

  1. Python字母顺序返回字典

    2024-07-14 16:52:05       59 阅读
  2. Python基础dict字典定义与函数

    2024-07-14 16:52:05       56 阅读
  3. dict类型遍历python

    2024-07-14 16:52:05       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 16:52:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 16:52:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 16:52:05       58 阅读
  4. Python语言-面向对象

    2024-07-14 16:52:05       69 阅读

热门阅读

  1. 多线程编程中的条件变量及其优化

    2024-07-14 16:52:05       15 阅读
  2. STM32F103控制0.96寸OLED显示

    2024-07-14 16:52:05       15 阅读
  3. GESP C++ 三级真题(2023年9月)T1 ⼩ 杨储蓄

    2024-07-14 16:52:05       14 阅读
  4. 2024年交安安全员考试题库及答案

    2024-07-14 16:52:05       19 阅读
  5. 2024年高校辅导员考试题库及答案

    2024-07-14 16:52:05       25 阅读
  6. VMM、VMI、VIM的简介

    2024-07-14 16:52:05       16 阅读
  7. Python 面试热门问题五

    2024-07-14 16:52:05       22 阅读
  8. TCP流量控制是怎么实现的?

    2024-07-14 16:52:05       24 阅读
  9. C#开发翻译较好的API

    2024-07-14 16:52:05       19 阅读
  10. C语言西蒙说游戏

    2024-07-14 16:52:05       25 阅读