目录

fromkeys()

keys()

values()

items()

get()

setdefault()

成员资格操作符 in, not in

clear()

copy()

pop() 和 popitem()

update()


字典的部分内置方法:

fromkeys()

>>> help(dict.fromkeys)
Help on built-in function fromkeys:fromkeys(iterable, value=None, /) method of builtins.type instanceReturns a new dict with keys from iterable and values equal to value.
>>> dict1 = {}
>>> dict1.fromkeys((1, 2, 3), 'one', 'two')
Traceback (most recent call last):File "<pyshell#35>", line 1, in <module>dict1.fromkeys((1, 2, 3), 'one', 'two')
TypeError: fromkeys expected at most 2 arguments, got 3>>> dict1.fromkeys((1, 2, 3))
{1: None, 2: None, 3: None}>>> dict1.fromkeys((1, 2, 3,), 'numbers')
{1: 'numbers', 2: 'numbers', 3: 'numbers'}>>> dict1.fromkeys((1, 2, 3), ('one', 'two', 'three'))
{1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}>>> dict1.fromkeys((1, 3), '数字')     #创建了一个新的字典,而不是去对原来的进行修改
{1: '数字', 3: '数字'}

字典的迭代方法:keys(), values(), items()

keys()

返回键的引用

>>> dict1 = dict.fromkeys(range(10), "棒棒")
>>> dict1
{0: '棒棒', 1: '棒棒', 2: '棒棒', 3: '棒棒', 4: '棒棒', 5: '棒棒', 6: '棒棒', 7: '棒棒', 8: '棒棒', 9: '棒棒'}>>> for eachKey in dict1.keys():print(eachKey, end = " ")0 1 2 3 4 5 6 7 8 9 

values()

返回值的引用

>>> for eachValue in dict1.values():print(eachValue, end = " ")棒棒 棒棒 棒棒 棒棒 棒棒 棒棒 棒棒 棒棒 棒棒 棒棒 

items()

返回项的引用

>>> for eachItem in dict1.items():print(eachItem, end = " ")(0, '棒棒') (1, '棒棒') (2, '棒棒') (3, '棒棒') (4, '棒棒') (5, '棒棒') (6, '棒棒') (7, '棒棒') (8, '棒棒') (9, '棒棒') 

get()

采用更宽松的方式访问字典中的项

一般来说,如果试图访问字典中不存在的项,会报错。但使用 get() 方法则不会。

>>> dict1 = dict.fromkeys(range(10), "棒棒")>>> dict1[10]
Traceback (most recent call last):File "<pyshell#58>", line 1, in <module>dict1[10]
KeyError: 10>>> dict1.get(10)                   #好像什么都没有发生
>>> print(dict1.get(10))            #实际上是返回了一个None对象
None>>> dict1.get(10, '没有')
'没有'
>>> dict1.get(1, '没有')
'棒棒'

setdefault()

和get()方法类似,只是在找不到对应的键时,它会自动往字典里添加:

>>> dict1 = dict.fromkeys(range(10), "棒棒")
>>> dict1.setdefault("找不到")                    #默认的值为None
>>> dict1
{0: '棒棒', 1: '棒棒', 2: '棒棒', 3: '棒棒', 4: '棒棒', 5: '棒棒', 6: '棒棒', 7: '棒棒', 8: '棒棒', 9: '棒棒', '找不到': None}>>> dict1.setdefault("啦啦啦", "棒棒棒")         #也可以自己指定值
'棒棒棒'
>>> dict1
{0: '棒棒', 1: '棒棒', 2: '棒棒', 3: '棒棒', 4: '棒棒', 5: '棒棒', 6: '棒棒', 7: '棒棒', 8: '棒棒', 9: '棒棒', '找不到': None, '啦啦啦': '棒棒棒'}

成员资格操作符 in, not in

可以用成员资格操作符(in  、not  in)判断一个键是否在字典中

>>> 10 in dict1
False
>>> 1 in dict1
True

字典中检查键的成员资格比在序列中更加高效,当数据规模相当大的时候,两者的区别会很明显。

ps.这里查找的是键而不是值;而在序列中,查找的是元素的值,而不是元素的索引号。

clear()

清空字典

>>> dict1
{0: '棒棒', 1: '棒棒', 2: '棒棒', 3: '棒棒', 4: '棒棒', 5: '棒棒', 6: '棒棒', 7: '棒棒', 8: '棒棒', 9: '棒棒'}
>>> dict1.clear()
>>> dict1
{}

通过直接赋值一个空字典的方式不严谨:

>>> a = {'name': 'Harry'}
>>> b = a
>>> b
{'name': 'Harry'}
>>> a = {}
>>> a
{}
>>> b                    #还可以通过b访问该字典
{'name': 'Harry'}

copy()

注意 copy() 方法是浅拷贝:

>>> a = {1: 'one', 2: 'two', 3: 'three'}
>>> b = a.copy()
>>> c = a
>>> a
{1: 'one', 2: 'two', 3: 'three'}
>>> b
{1: 'one', 2: 'two', 3: 'three'}
>>> c
{1: 'one', 2: 'two', 3: 'three'}>>> id(a)
53628216
>>> id(b)
53627928
>>> id(c)
53628216            #a,c只是两个不同的标签>>> c[4] = 'four'
>>> a
{1: 'one', 2: 'two', 3: 'three', 4: 'four'}
>>> b
{1: 'one', 2: 'two', 3: 'three'}
>>> c
{1: 'one', 2: 'two', 3: 'three', 4: 'four'}

pop() 和 popitem()

pop() 方法:给定键弹出对应的值

popitem() 方法:随机弹出项

>>> a.pop(2)
'two'
>>> a
{1: 'one', 3: 'three', 4: 'four'}>>> a.popitem()
(4, 'four')
>>> a
{1: 'one', 3: 'three'}

update()

利用一个字典或映射关系去更新另一个字典

>>> a = {1: 'one', 2: 'two'}
>>> b = {2: '阿拉伯数字'}
>>> a.update(b)
>>> a
{1: 'one', 2: '阿拉伯数字'}

鱼c笔记——Python字典(二)相关推荐

  1. Python字典二次开发实现稀疏矩阵表示与简单计算

    问题描述:所谓稀疏矩阵是指,矩阵中大部分元素的值为0,只有少量非0元素.对于稀疏矩阵,如果存储所有元素的话,浪费空间较多,一般采取的方式是只存储非0元素及其位置. 思考下面的几个问题: 1)如何使用字 ...

  2. python字典循环添加元素_牛鹭学院:学员笔记|python字典、列表、循环

    本文来自牛鹭学院学员:肖文芳 一.字典 (字典是什么呢?) 字典也是用来存放多种数据的容器,它和列表的功能相似,但是它是使用{}包起来的,而列表不是: 字典中的每一个元素都是一个单独的「键值对」,用英 ...

  3. 鱼c笔记——Python 的 GUI 编程(一):接触 Tkinter

    Python 的 GUI 工具包有很多,之前的 EasyGUI 就是其中最简单的一个.但是 EasyGUI 实在是太简单了,因此只适合作为 GUI 编程的敲门砖. 而与 EasyGUI 不同,这次要介 ...

  4. 鱼c笔记——Python文件

    参考阅读:http://bbs.fishc.com/thread-45279-1-1.html 打开文件:用open() 函数打开文件,并返回文件对象.拿到文件对象我们就可以对文件进行读取和修改.   ...

  5. Python学习笔记之字典(二)

    遍历字典:一个Python字典可能包含很多个键值对,在需要获取其数据时,就需要对这个进行遍历,Python支持对字典遍历.字典可用于以各种方式存储信息,其中有多种遍历字典的方式:可遍历字典的所有键值对 ...

  6. LEETCODE-刷题个人笔记 Python(1-400)-TAG标签版本(二)

    前面一篇由于文字太多,不给编辑,遂此篇出炉 LEETCODE-刷题个人笔记 Python(1-400)-TAG标签版本(一) DFS&BFS (262)200. Number of Islan ...

  7. Python基础学习笔记之(二)

    Python基础学习笔记之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 六.包与模块 1.模块module Python中每一个.py脚本定义一个模块 ...

  8. Python学习笔记:字典(dict)

    Python学习笔记:字典(dict) 字典(dict)可能是最重要的Python内置数据结构,更常用的名称是哈希映射(hash map)或关联数组(associate array).它是键值对的集合 ...

  9. python学习笔记分享(二十四)python学习笔记分期补充(二)复数,randint与sample,进制转换表,转义字符,二维数组,键,end,pass,迭代器和生成器

    一:复数 Python支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型. complex(x) 将x转换到一个复数,实数部 ...

最新文章

  1. (转)TabContainer要实现服务器端回传
  2. 【6月活动】投稿换T恤!只要你愿意分享!这件酷炫的T恤就是你的~!!
  3. TypeError: 'module' object is not callable 原因分析(python模块导入注意事项)
  4. 提高显微镜分辨率方法_Nat Protoc | 利用激光干涉获得超高分辨率显微镜
  5. Java中的容器类List、Set、Map的对比
  6. ASP.Net 数据绑定之-----选择合适的数据控件
  7. php mysql化妆品商城计算机毕业设计网站成品
  8. hadoop 关闭datanode节点时发生异常:no datanode to stop
  9. SPring cloud (3)A Ribbon 负载均衡 配置初步
  10. Redis学习笔记整理(黑马程序员视频课程)
  11. 用友-凭证打印行数如何调整
  12. AUTOCAD——圆命令
  13. 充电IC中的动态路径管理
  14. mysql 创建 utf-8 数据库_mysql 创建数据库 utf-8
  15. 【java毕业设计】基于java+SSH+jsp的网上体育商城设计与实现(毕业论文+程序源码)——网上体育商城
  16. Python爬取链家北京租房房价|保存为csv格式文件
  17. 做好演讲者的必备条件
  18. 什么蓝牙耳机性价比高?四款高性价比蓝牙耳机推荐
  19. 抖音短视频内容该如何创作
  20. Python爬取链家成都二手房源信息

热门文章

  1. [MCGC]网络优化_MCGC 下载地址 最新版 持续更新
  2. 惊天消息!美国重启病毒实验,或对人类造成巨大威胁...
  3. bugku 输入密码查看flag
  4. 苹果处理器性能突破天际,安卓已望尘莫及
  5. 如何给自己制订一个“可实现的”新年目标?
  6. 如何有效进行测试执行进度计划的制订
  7. 架构师之路 — 部署架构 — Overview
  8. Android应用开发-护眼提醒-总结篇
  9. 第五章 异常处理(中)
  10. 仿生学导论学习笔记——第二章