#PY小贴士# 字典可以通过序号索引来访问?

我们在学 python 中的 list 和 dict 时知道:

  • list 是有序的,所以可以通过 list_a[0] 这样的方式通过索引(index)来访问列表中某个位置上的元素;

  • dict 是无序的,所以无法通过 dict_b[0] 这样的方式来访问字典中的元素,需要通过 dict_b[key] 通过键(key)来访问。

但是,

dict_b[0] 这种写法并非完全不可能!

在有些语言里,字典的键必须是字符串。但 python 不是。python 中的不可变类型(实现了__hash__方法的)都可以作为 key。因此,如下这个字典是合法的:

dict_b = { 'a': 1, 0: 2, 1.5: 3, (2, 3): 4}

于是,访问 dict_b[0] 就会得到对应的值(value):2。

不仅如此,你甚至还可以正常调用 dict_b[1.5]、dict_b[2, 3]。

不过在实际开发中,除非有特殊需求,或者和你的合作开发者有仇,否则不太建议用这种方式来设定字典的键。


(0)

相关推荐

  • 4.Python列表/元组/集合/字典

    碧茂大数据 前天 4.1 Python列表 · 列表用 [ ] 标识,是Python 最通用的复合数据类型. · 列表用 [ ] 表示,列表具有可嵌套性 4.1.1 Python列表截取 · 列表可以 ...

  • 好程序员Python培训分享入门之元组列表字典详解

    好程序员Python培训分享入门之元组列表字典详解,文中通过示例代码介绍的非常详细,下面我们一起来看一下吧. Tuple叫做tuple,用小括号.或者无括号来表述,是一连串有顺序的数字. a_tupl ...

  • python空字典怎么写

    字典是另外一种可变容器模子,且可存储恣意类型工具. 字典的每一个键值(key=>value)对用冒号(:)宰割,每一个对之间用逗号(,)宰割,整个字典包罗正在花括号({})中 . 格局以下所示: ...

  • #PY小贴士# 别弄错了 Python 里的这几个运算符

    有人问过这样的问题: 为什么我求圆的面积,结果不对? r = 10s = 3.14 * (r ^ 2)print(s) 还有人问过这样的问题: 为什么判断两个并列条件时结果不对? a = 6if a ...

  • #PY小贴士# 函数也是对象

    之前我们提到过:有同学在写入文件之后发现文件内容并没有改动,有可能是因为在关闭文件时写成了 f.close,没就加括号.那么为什么不加括号就不行,而且程序也没有报错提示呢? 这就要提到 Python ...

  • #PY小贴士# git 的冲突

    讲一个同学问到的 git 问题: 为什么我的 git 在 pull 更新线上最新代码的时候提示失败,然后发现代码里多了一些奇怪的内容: 要如何解决? 这个问题一个人写代码的时候出现的概率不高,但当多人 ...

  • #PY小贴士# for 循环定义的变量,循环外可以用吗?

    在使用 for 循环时,需要定义变量,大多数时候我们都会用一个 i 来表示: for i in range(10): print(i) 我们知道,在 python 中要获取一个变量的值,必须是先给它赋 ...

  • #PY小贴士# 同样是排序,sort和sorted有啥不同?

    对列表中的元素进行排序,有两种常用方法: 1. lst = [3, 5, 2, 1, 7]lst.sort()print(lst) 2. lst = [3, 5, 2, 1, 7]lst = sort ...

  • #PY小贴士# BeautifulSoup的解析器选择

    关于解析网页内容的工具 BeautifulSoup,我们之前做过介绍: 网页解析器 BeautifulSoup 上手教程 做爬虫获取网页信息,我推荐使用 bs4,比 xpath 更人性化些. 有爬虫课 ...

  • #PY小贴士# py2 和 py3 的差别到底有多大?

    昨天的文章里也提到了:python 2 版本将在今年正式停止官方维护.(具体时间上有不同说法,1月1号.4月.8月--但这个差别意义不大了) 从我开始做 Python 编程教学的工作开始,就始终在解答 ...

  • 小贴士 | 沙尘天气下的健康防护提示

    沙尘天气下,污染物可通过眼.鼻.喉等黏膜组织及皮肤,直接对人体产生不同程度的刺激症状或过敏反应.沙尘颗粒还可通过呼吸道进入人体,引起多种呼吸系统疾患. 老年人.儿童.孕妇.患有呼吸系统疾病及心血管疾病 ...