(给Python开发者加星标,提升Python技能)英文:Satwik Kansal,翻译:暮晨

Python开发者整理自 GitHub

【导读】:Python 是一个设计优美的解释型高级语言,它提供了很多能让程序员感到舒适的功能特性。但有的时候 Python 的一些输出结果对于初学者来说似乎并不是那么一目了然。

GitHub 有个仓库收集 Python 中那些难以理解和鲜为人知的功能特性,并尝试讨论这些现象背后真正的原理!

虽然有些例子并不一定会让你觉得“卧槽”(WTF),但它们依然有可能会告诉你一些你所不知道的 Python 有趣特性。我觉得这是一种学习编程语言内部原理的好办法,而且我相信你也会从中获得乐趣!

如果你是一位经验比较丰富的 Python 程序员,你可以尝试挑战看是否能一次就找到例子的正确答案。你可能对其中的一些例子已经比较熟悉了,那这也许能唤起你当年踩这些坑时的甜蜜回忆。

今天我们的主角是字典,让我们开始吧!

奇怪的字典!

1.some_dict = {}some_dict[5.5] = "Ruby"some_dict[5.0] = "JavaScript"some_dict[5] = "Python"

Output:>>> some_dict[5.5]"Ruby">>> some_dict[5.0]"Python">>> some_dict[5]"Python"

"Python" 消除了 "JavaScript" 的存在?

说明:Python 字典通过检查键值是否相等和比较哈希值来确定两个键是否相同.

具有相同值的不可变对象在Python中始终具有相同的哈希值.>>> 5 == 5.0True>>> hash(5) == hash(5.0)True注意: 具有不同值的对象也可能具有相同的哈希值(哈希冲突).

当执行 some_dict[5] = "Python" 语句时, 因为Python将 5 和 5.0 识别为 some_dict 的同一个键, 所以已有值 "JavaScript" 就被 "Python" 覆盖了.

这个 StackOverflow的 回答[1] 漂亮地解释了这背后的基本原理.

Return return everywhere!def some_func():    try:        return "from_try"    finally:        return "from_finally"

Output:>>> some_func()"from_finally"

说明:当在 "try...finally" 语句的 try 中执行 return, break 或 continue 后, finally 子句依然会执行.

函数的返回值由最后执行的 return 语句决定. 由于 finally 子句一定会执行, 所以 finally 子句中的 return 将始终是最后执行的语句.

参考资料[1]

https://stackoverflow.com/a/32211042/4354153

- EOF -推荐阅读  点击标题可跳转

1、你知道和不知道的Python字典都在这里!!

2、Python 优雅的操作字典

3、如何优雅的操作 Python 字典

觉得本文对你有帮助?请分享给更多人

推荐关注「Python开发者」,提升Python技能

点赞和在看就是最大的支持❤️

python 字典性质描述_卧槽!Python还有这些特性(2):奇怪的字典相关推荐

  1. 以下关于python文件的描述_关于 Python 文件处理 , 以下选项中描述正确的是 : ( )_学小易找答案...

    [判断题]Python 支持使用字典的 " 键 " 作为下标来访问字典中的值 . [判断题]尽管可以使用 import 语句一次导入任意多个标准库或扩展库,但是仍建议每次只导入一个 ...

  2. python类属性描述_如何描述Python对象,以及属性、标识、类型和值之间的关系?...

    虽然可以通过属性访问对象的类型,但它的类型不仅仅是一个属性--该类型定义了对象在拥有任何属性之前是如何创建的.仅凭这个事实,这些语句都不足以描述Python对象. 我这么说:In Python, ev ...

  3. python字典添加列表_【Python】对字典列表进行去重追加

    [TOC] 目标 现有字典列表 # A = [ {dict1}, {dict2} ] B = [ {dict3}, {dict2} ] C = [ {dict3}, {dict4} ] M = [A, ...

  4. python字典键盘添加元素_对python字典元素的添加与修改方法详解

    1.字典中的键存在时,可以通过字典名+下标的方式访问字典中改键对应的值,若键不存在则会抛出异常.如果想直接向字典中添加元素可以直接用字典名+下标+值的方式添加字典元素,只写键想后期对键赋值这种方式会抛 ...

  5. python按指定概率抽样_基于python进行抽样分布描述及实践详解

    本次选取泰坦尼克号的数据,利用python进行抽样分布描述及实践. 备注:数据集的原始数据是泰坦尼克号的数据,本次截取了其中的一部分数据进行学习.Age:年龄,指登船者的年龄.Fare:价格,指船票价 ...

  6. python字典操作函数_【python】字典的操作方法和函数

    一.字典内置函数&方法 Python字典包含了以下内置函数: 1.cmp(dict1, dict2):比较两个字典元素. 2.len(dict):计算字典元素个数,即键的总数. 3.str(d ...

  7. python对datetime排序_【python】时间戳、字典列表排序

    记录一下昨天学到的知识: 一.文件相关 文件追加:f = open("fname","a")    文件不存在时创建 二.时间戳相关 获取时间戳: import ...

  8. 以下选项中python用于异常处理结构_《Python 程序设计》复习题

    目录 填空题 一.基础知识 二.序列 三.选择结构与循环结构和函数及面向对象.文件 选择题 一.Python 基础语法 二.基本数据类型 三.程序的控制结构 四.函数和代码复用 五.组合数据类型 六. ...

  9. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

最新文章

  1. wxWidgets:wxAcceleratorTable类用法
  2. Jeson nano + 思岚激光雷达rplidar_s1 + ubuntu18.04
  3. delphi 点击wsdl出不了描述文件_iOS 13 公测版来了,安装公测版官方描述文件
  4. Understanding ES6 -- 深入理解ES6书籍
  5. 精选算法题(3)——奇偶数据分离
  6. uBLAS——Boost 线性代数基础程序库
  7. p2093 [国家集训队]JZPFAR
  8. 认证通用基础相关标准和法规
  9. Office 2016专业增强版加装Visio
  10. 怎样学好模拟集成电路设计?
  11. 基于单片机的音乐盒系统设计(#0435)
  12. 创建 SSH key
  13. Aspose.word设置页眉
  14. 是时候来一发炸裂的开场了!
  15. 华为云yum镜像源超慢改用阿里云镜像遇坑解决方法
  16. 又get到一个新markdown编辑器
  17. 2020年数据科学与大数据技术专业填报指南(附院校及专业介绍)/ 高考填志愿...
  18. 【转载】python 函数的入参 一个* 两个* 的使用与区别
  19. 妻子决定你未来事业的高度,男的看一看,女的学一学
  20. avr单片机c语言 右移,AVR左移右移递增减流水灯

热门文章

  1. apache启服务命令_linux系统下apache服务的启动、停止、重启命令
  2. 1029 最大公约数和最小公倍数问题(gcd) luogu洛谷
  3. Nginx的启动、停止、重启
  4. javascript 函数初探 (六)--- 闭包初探#4
  5. Android之十七 进度条和Hanlder
  6. 关于module_param()宏
  7. JavaScript之jQuery够用即可(事件委托、动画效果、扩展插件)
  8. Python批量修改Word文档中特定关键字的颜色
  9. 微课|玩转Python轻松过二级(2.1.3节):字符串与字节串简介
  10. Python批量导入图片生成PowerPoint 2007+文件