fromkeys()

  • fromkeys()方法用于创建并返回一个新的字典
  • 它有两个参数:第一个参数是字典的键;第二个参数是可选的,是传入键对应的值,如果不提供,默认是None

访问字典的几个方法

keys()

  • 返回字典中的键

values()

  • 返回字典中的值

items()

  • 返回字典中所有的键值对(项)

    当去索引字典中不存在的键时,会报错

get()

  • get()方法提供了更宽松的方式去访问字典项,当键不存在时,get()方法并不会报错,只是默默地返回了一个None

    当不知道一个键是否在字典中,就可以使用成员资格操作符(in或not in)来判断

    注意:在字典中检查键的成员资格比序列更加高效,当数据规模相当大时,两者差距就会很明显,因为字典是采用哈希方法一对一找到成员,而序列则是采取迭代的方式逐个比对,此外,在字典里查找的是键而不是值,但在序列中查找的是元素的值而不是元素的索引

clear()

  • 清空一个字典的方法


通过创建一个空字典的方式清空字典有一定的弊端

copy()

  • copy()方法是用于拷贝(浅拷贝)整个字典
  • 注意,不能把赋值当作浅拷贝

pop()

  • 给定键弹出对应的值

popitem()

  • 弹出一个项

setdefault()

  • setdefault()方法和get()方法有点相似,但是, setdefault()方法在字典中找不到相应的键时会自动添加

update()

  • 利用字典或映射关系用来更新字典

字典在收集参数中的应用

  • 收集参数其实有两种打包形式:一种是以元组的形式打包;另一种则是以字典的形式打包
  • 当参数带两个星号(**)时,传递给函数的任意数量的key=value实参就会被打包进一个字典中
  • 有打包就有解包

Task

0. Python的字典是否支持一键(Key)多值(Value)?
不支持,对相同的键再次赋值会将上一次的值直接覆盖。

1. 在字典中,如果试图为一个不存在的键(Key)赋值会怎样?
会自动创建对应的键(Key)并添加相应的值(Value)进去

2. 成员资格操作符(in和not in)可以检查一个元素是否存在序列中,当然也可以用来检查一个键(Key)是否存在字典中,那么请问哪种的检查效率更高些?为什么?
后者更高。因为字典是采用哈希方法一对一找到成员,而序列则是采取迭代的方式逐个对比

3. Python对键(Key)和值(Value)有没有类型限制?
字典的键必须独一无二,但值则不必。值可以取任何数据类型,但必须是不可变的,如字符串、数或元组
Python对键的要求相对要严格一些,要求它们必须是可哈希(Hash)的对象,不能是可变类型(包括变量、列表、字典本身等)。

但是Python对值是没有任何限制的,它们可以是任意的Python对象。

4. 请目测下边代码执行后,字典dict1的内容是什么?

>>> dict1.fromkeys((1, 2, 3), ('one', 'two', 'three'))
>>> dict1.fromkeys((1, 3), '数字')


fromkeys方法是直接创建一个新的字典,不要试图使用它来修改一个原有的字典,因为它会直接无情的用把整个字典给覆盖掉。
5. 如果你需要将字典dict1 = {1: ‘one’, 2: ‘two’, 3: ‘three’}拷贝到dict2,你应该怎么做?

>>> dict1 = {1: 'one', 2: 'two', 3: 'three'}
>>> dict2 = dict1.copy()


6. 尝试编写一个用户登录程序(这次尝试将功能封装成函数),程序实现如图:

零基础入门学习python(24)-字典(2):字典的内置方法相关推荐

  1. 零基础学python pdf-Python pdf(零基础入门学习Python)V1.0 最新版

    Python pdf(零基础入门学习Python)是一款功能强劲专业实用的Python电子书籍.想要零基础入门学习Python?那就快试试绿色先锋小编推荐的Python pdf最新版下载使用.由作者小 ...

  2. 零基础学python 视频_零基础入门学习PYTHON(第2版)(微课视频版)

    小甲鱼畅销图书重磅升级,针对Python 3.7,通过生动的实例,让读者在实践中理解概念,在轻松.愉快中学会Python! 本书提倡理解为主,应用为王.因此,只要有可能,小甲鱼(注:作者)都会通过生动 ...

  3. 《零基础入门学习Python》学习笔记(1-25)

    参考:<零基础入门学习python>http://edu.csdn.net/course/detail/906?locationNum=1&fps=1&ref=srch&a ...

  4. 零基础入门学习Python,我与python的第一次亲密接触后的感受!

    前言:Python是适合初学者入门最好的语言 Python适合初学者入门最好的语言 人工智能用Python?高考要加入Python?现在连微软官方Excel都要把Python作为官方语言!Python ...

  5. 零基础python必背代码-零基础入门学习python 96集全

    零基础入门学习python 96集全 第000讲 愉快的开始(视频+课件)xa0 第001讲 我和Python第一次亲密接触(视频+课件)xa0 第002讲 用Python设第一个游戏(视频+课件+源 ...

  6. 零基础入门学习Python,我与python的第一次亲密接触后的感受

    前言:Python是适合初学者入门最好的语言 Python适合初学者入门最好的语言 人工智能用Python?高考要加入Python?现在连微软官方Excel都要把Python作为官方语言!Python ...

  7. 零基础学python pdf-笔记《零基础入门学习Python(第2版)》PDF+课件+代码分析

    通过自学编程,感觉到基础知识很重要,越到后面越能发现这一点,光记住是不行的,还要灵活运用,要多调试代码,计算机就是一个不断练习,不断遇到问题,解决问题的工种,要根据实际的业务能想到对应的语法,实际项目 ...

  8. python dict 合并同类项_零基础入门学习Python,这13个Python惯用小技巧一定要收藏...

    原标题:零基础入门学习Python,这13个Python惯用小技巧一定要收藏 Python的小技巧很多,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就是不断总结,不断记笔记!尤其是好的 ...

  9. 零基础入门python小甲鱼-小甲鱼零基础入门学习Python百度云下载 | 宅男君

    Python编程语言可以在不同平台上使用,比如Windows.MAC.Linux操作系统.通常情况下,一个Python程序在你自己的Windows系统上运行,也可以在别人的MAC系统上运行.Pytho ...

  10. python零基础入门教程百度云-小甲鱼零基础入门学习Python百度云下载 | 宅男君

    Python编程语言可以在不同平台上使用,比如Windows.MAC.Linux操作系统.通常情况下,一个Python程序在你自己的Windows系统上运行,也可以在别人的MAC系统上运行.Pytho ...

最新文章

  1. 2022斯坦福AI指数报告出炉!中国霸榜AI顶会,但引用量最低
  2. Windows Server2012R2 FTP服务器配置
  3. NEC使用C+L EDFA在超过1.1万公里的海底光缆中首次实现50Tb传输
  4. java元婴期(22)----java进阶(mybatis(1)---mybatis框架概述入门程序)
  5. hackme_Login As Admin 0
  6. 目标检测数据集PASCAL VOC简介
  7. vsftp的被动模式
  8. 2020年3月数据库流行度排行:疫情烽烟四起,数据价值为王
  9. 实现在Android 多点手势识别
  10. MATLAB信号与系统实验(一)
  11. 读懂职场则规潜 潜伏者的上位秘诀
  12. 九度[1029]-魔咒词典
  13. 文华财经多个非常实用的期货指标公式,文华财经支撑压力自动画线公式
  14. 《皮囊》——蔡崇达,读后感
  15. 爬虫技术:携程爬虫阳光问政数据
  16. 【TOJ 3755】 Graph and Queries【Splay】
  17. 使用编译版rtklib过程中如何进行main的调试(spp ppp)
  18. 搜狗输入法的符号大全里面可以输入下标
  19. 计算机专业毕设评阅人评语,毕业论文指导教师评语与评阅人评语写法
  20. 新浪微博模拟登录分析(含验证码)

热门文章

  1. 我们为什么要分库分表?
  2. 是什么让 Spring5 放弃了使用 Guava Cache?
  3. 【Java8新特性】面试官问我:Java8中创建Stream流有哪几种方式?
  4. 深入探究 RocketMQ 事务机制的实现流程,为什么它能做到发送消息零丢失?
  5. 2019年必须掌握的29个微服务面试问题(下)
  6. 埃森哲是如何系统化做好数据分析?
  7. BAT技术专家的4个考核点!
  8. c++调用shell命令
  9. 面试宝典JAVA集合框架 List、Set、Map
  10. python3中的多线程