专栏首页Crossin的编程教室#PY小贴士# 字典可以通过序号索引来访问?

#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]。

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


#PY小贴士# 里,我们会分享 python 知识点、开发小技巧、学习中的常见问题等。篇幅短小,适合碎片时间阅读,欢迎关注!

本栏目接受投稿,采纳后将署名发表,可附个人博客、公众号、Github等。

如果你在编程学习中有疑问,可通过以下方式向我们提问:

1. 加入码上行动答疑群(最及时响应)

2. 加入知识星球 https://t.zsxq.com/IiAiiQj

3. 发微博加上 #编程教室# @Crossin(非私信)

提问时请表述清楚,附上必要代码、输出等截屏。


本文分享自微信公众号 - Crossin的编程教室(crossincode),作者:crossin

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【编程课堂】计数器 Counter

    上一期的编程课堂我们介绍了 有序字典 OrderedDict,这一期我们再来聊聊 同属 collections 模块的另一种数据类型 Counter。 在了解 ...

    Crossin先生
  • Python老司机给上路新手的3点忠告

    在你学习编程的过程中,是否有过以下经历,或正在面临类似的局面: 网上找了很多资料,不知道从哪里看起 买了本书,过了很久也没有看完第一章 开始还能跟着写几行代码,...

    Crossin先生
  • 新手学习编程的最佳方式是什么?

    回答这个问题是我最近两年来唯一的关注点。我觉得此处提及的许多资源尽管都很不错,然而我却注意到,成功的学生,无论使用哪种资源,往往都会在以下三个方面,比其他人有着...

    Crossin先生
  • 遍历python字典几种方法

    py3study
  • Python 中的字典操作

    py3study
  • Some question about

    在 Python 中对于某些 object __dict__ 属性是只读的,比如对于 type object。然而,在 Python2.5-2.6 之前,还是有...

    py3study
  • python: dict(字典) 操作

    删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

    JNingWei
  • python中的__dict__和dir()的区别

    Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案。

    于小勇
  • 面试宝典_Python.常规算法.000

    1. 用PYTHON实现一个扁平化的字典,如{'a': {'b': '1'}}扁平化处理后变成{'a.b': 1}?

    py3study
  • 【编程经验】Python之collections模块

    collections模块是一个不用不知道,一用就上瘾的模块。因为它提供了几种非常方便的数据结构和方法,在有些情况下特别好用。今天给大家总结一下其中的Order...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券