鱼c笔记——Python字典(二)
目录
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字典(二)相关推荐
- Python字典二次开发实现稀疏矩阵表示与简单计算
问题描述:所谓稀疏矩阵是指,矩阵中大部分元素的值为0,只有少量非0元素.对于稀疏矩阵,如果存储所有元素的话,浪费空间较多,一般采取的方式是只存储非0元素及其位置. 思考下面的几个问题: 1)如何使用字 ...
- python字典循环添加元素_牛鹭学院:学员笔记|python字典、列表、循环
本文来自牛鹭学院学员:肖文芳 一.字典 (字典是什么呢?) 字典也是用来存放多种数据的容器,它和列表的功能相似,但是它是使用{}包起来的,而列表不是: 字典中的每一个元素都是一个单独的「键值对」,用英 ...
- 鱼c笔记——Python 的 GUI 编程(一):接触 Tkinter
Python 的 GUI 工具包有很多,之前的 EasyGUI 就是其中最简单的一个.但是 EasyGUI 实在是太简单了,因此只适合作为 GUI 编程的敲门砖. 而与 EasyGUI 不同,这次要介 ...
- 鱼c笔记——Python文件
参考阅读:http://bbs.fishc.com/thread-45279-1-1.html 打开文件:用open() 函数打开文件,并返回文件对象.拿到文件对象我们就可以对文件进行读取和修改. ...
- Python学习笔记之字典(二)
遍历字典:一个Python字典可能包含很多个键值对,在需要获取其数据时,就需要对这个进行遍历,Python支持对字典遍历.字典可用于以各种方式存储信息,其中有多种遍历字典的方式:可遍历字典的所有键值对 ...
- LEETCODE-刷题个人笔记 Python(1-400)-TAG标签版本(二)
前面一篇由于文字太多,不给编辑,遂此篇出炉 LEETCODE-刷题个人笔记 Python(1-400)-TAG标签版本(一) DFS&BFS (262)200. Number of Islan ...
- Python基础学习笔记之(二)
Python基础学习笔记之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 六.包与模块 1.模块module Python中每一个.py脚本定义一个模块 ...
- Python学习笔记:字典(dict)
Python学习笔记:字典(dict) 字典(dict)可能是最重要的Python内置数据结构,更常用的名称是哈希映射(hash map)或关联数组(associate array).它是键值对的集合 ...
- python学习笔记分享(二十四)python学习笔记分期补充(二)复数,randint与sample,进制转换表,转义字符,二维数组,键,end,pass,迭代器和生成器
一:复数 Python支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型. complex(x) 将x转换到一个复数,实数部 ...
最新文章
- (转)TabContainer要实现服务器端回传
- 【6月活动】投稿换T恤!只要你愿意分享!这件酷炫的T恤就是你的~!!
- TypeError: 'module' object is not callable 原因分析(python模块导入注意事项)
- 提高显微镜分辨率方法_Nat Protoc | 利用激光干涉获得超高分辨率显微镜
- Java中的容器类List、Set、Map的对比
- ASP.Net 数据绑定之-----选择合适的数据控件
- php mysql化妆品商城计算机毕业设计网站成品
- hadoop 关闭datanode节点时发生异常:no datanode to stop
- SPring cloud (3)A Ribbon 负载均衡 配置初步
- Redis学习笔记整理(黑马程序员视频课程)
- 用友-凭证打印行数如何调整
- AUTOCAD——圆命令
- 充电IC中的动态路径管理
- mysql 创建 utf-8 数据库_mysql 创建数据库 utf-8
- 【java毕业设计】基于java+SSH+jsp的网上体育商城设计与实现(毕业论文+程序源码)——网上体育商城
- Python爬取链家北京租房房价|保存为csv格式文件
- 做好演讲者的必备条件
- 什么蓝牙耳机性价比高?四款高性价比蓝牙耳机推荐
- 抖音短视频内容该如何创作
- Python爬取链家成都二手房源信息