Python学习笔记(7)字典
2019-03-07
字典(dict):
(1)字典用大括号({})定义,字典由多个键及其对应的值组合而成,每一对键值组合称为项。
(2)字典的键唯一,但是值可以是任何(不可变的)数据类型(整型,字符串,元组等)
(3)字典是Python中唯一的映射类型,字典不是序列,在字典中为一个不存在的位置赋值的时候,会自动创建相应的键并添加对应的值进去。
(4)创建字典:
① 空字典:用一个大括号即可。
测试代码:
empty = {} print(empty)
print(type(empty))
运行结果:
{}
<class 'dict'>
② dict()函数创建字典。该函数的参数可以是一个序列(不能是多个),要打包成一个元组(列表)序列。
测试代码:
dict2 = dict((('name','李白'),('age',70),('salary',2000))) print(dict2)
运行结果:
{'name': '李白', 'age': 70, 'salary': 2000}
③ 提供dict()函数具有映射关系的参数来创建字典。注意:键的位置上不能加上字符串的引号,否则会报错。
测试代码:
dict3 = dict(name = '李白',age = 70, salary = 2000)
print(dict3)
运行结果:
{'name': '李白', 'age': 70, 'salary': 2000}
④ 直接给已有字典的键赋值,如果键存在,则改写键对应的值,如果不存在,则创建一个新的键并赋值。
测试代码:
pets = {1:"name",2:"age",3:"agender"}
pets[3] = "salary"
pets[4] = 20000
print(pets)
运行结果:
{1: 'name', 2: 'age', 3: 'salary', 4: 20000}
(5)内置方法:
① fromkeys():创建并返回一个新的字典,有两个参数,第一个参数是字典的键,第二个参数是可选的,是传入键对应的值(如果没有值,默认值是none)。
测试代码:
dict4 = {}
test = dict4.fromkeys((1,2,3),"name")
test2 = dict4.fromkeys((1,2,3))
print(test)
print(test2)
运行结果:
{1: 'name', 2: 'name', 3: 'name'}
{1: None, 2: None, 3: None}
② keys():返回字典中的键。values():返回字典中所有的值。Items():返回字典中所有的键值对。
测试代码:
pets = {1:"name",2:"age",3:"agender"}
print(pets.keys())
print(pets.values())
print(pets.items())
运行结果:
dict_keys([1, 2, 3])
dict_values(['name', 'age', 'agender'])
dict_items([(1, 'name'), (2, 'age'), (3, 'agender')])
③ get():访问字典,当键不存在的时候,不会报错,会返回一个none。
测试代码:
pets = {1:"name",2:"age",3:"agender"} test = pets.get(2)
test2 = pets.get(4)
print(test)
print(test2)
运行结果:
age
None
④ 成员资格操作符In ,not in可以判断一个键是否存在字典中。
测试代码:
pets = {1:"name",2:"age",3:"agender"} print(1 in pets)
print(1 not in pets)
print(5 in pets)
运行结果:
True
False
False
⑤ clear():清空一个字典。
测试代码:
pets = {1:"name",2:"age",3:"agender"} print(pets)
pets.clear()
print(pets)
运行结果:
{1: 'name', 2: 'age', 3: 'agender'}
{}
⑥ pop():给定键弹出对应的值。 popitem():随机弹出一个键值对。
测试代码:
pets = {1:"name",2:"age",3:"agender"} test = pets.pop(1)
print(1,test)
print(2,pets) test2 = pets.popitem()
print(3,test2)
print(4,pets)
运行结果:
1 name
2 {2: 'age', 3: 'agender'}
3 (3, 'agender')
4 {2: 'age'}
⑦ setdefault():访问字典,在字典中找不到相应的键时会自动添加。
测试代码:
pets = {1:"name",2:"age",3:"agender"}
a = pets.setdefault(2)
b = pets.setdefault(5)
print(a)
print(b)
运行结果:
age
None
⑧ update():更新字典。
测试代码:
pets = {1:"name",2:"age",3:"agender"}
pets.update({1:"sda "})
pets.update(sun= "10000 ")
print(pets)
运行结果:
{1: 'sda ', 2: 'age', 3: 'agender', 'sun': '10000 '}
Python学习笔记(7)字典的更多相关文章
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- Python学习笔记之字典
一.创建和使用字典 1.创建字典 phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'} 2.dict,通过映射创建字典 >>> ...
- 【Python学习笔记】字典操作
字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...
- Python学习笔记四--字典与集合
字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...
- python学习笔记八——字典的方法
4.3.3 字典的方法 字典的常用方法可以极大地提高编程效率.keys()和values()分别返回字典的key列表和value列表.例: dict={"a":"appl ...
- python学习笔记七——字典
4.3 字典结构 字典是Python中重要的数据类型,字典的由“键-值”对组成的集合,字典中的“值”通过“键”来引用. 4.3.1 字典的创建 字典由一系列的“键-值”(key-value)对组成,“ ...
- python学习笔记(字典乱码)
博主总结下 python中字典中包含中文时,使用过程中出现乱码 json.dumps(params, encoding="UTF-8", ensure_ascii=False) p ...
- Python学习笔记3(字典)
创建字典 dict函数 字典的格式化字符串 字典方法 clear copy fromkeys 序列是一个按照一定顺序将值进行组织的数据结构形式,可以通过索引对其进行征引.另外还有一种数据结构是通过名字 ...
- python学习笔记(6)——字典(Dictionary)
dict= {key1 : value1, key2 : value2 ...} 关键词:字典中元素成对出现- key:value 格式- 两端{ } ,键:值,每对键值间用 ,隔开. 键key-唯一 ...
- python学习笔记(三)---字典
字典 在Python中,字典 字典 是一系列键 键-值对 值对 .每个键 键 都与一个值相关联,你可以使用键来访问与之相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将 任何Py ...
随机推荐
- keepalived实现IP地址高可用
yum -y install keepalived vim /etc/keepalived/keepalived.conf global_defs { router_id LVS_DEVEL_ngin ...
- 2、链接数据库+mongodb基础命令行+小demo
链接数据库并且打印出数据的流程:1.在CMD里面输入 mongod 2.在CMD里面输入 mongo 3.在输入mongodb命令行里面进行操作,首先输入 show dbs 来查看是否能够链接得上库4 ...
- jQuery(事件对象)
冒泡与阻止冒泡 阻止默认行为
- CodeForcesGym 100676G Training Camp
G. Training Camp Time Limit: 1000ms Memory Limit: 262144KB This problem will be judged on CodeForces ...
- BA--空调系统一次泵和二次泵区别
通常来说,空调系统是按照满负荷设计的,但实际运行中,满负荷运行的 时间不足 3% ,空调设备绝大部分时间内在远低于额定负荷的情况下运转.在 部分负荷下,虽然冷水机组可以根据实际负荷调节相应的冷量输出, ...
- HDU——T1231 最大连续子序列
http://acm.hdu.edu.cn/showproblem.php?pid=1231 Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连 ...
- Grand Central Dispatch(GCD)详解
概述 GCD是苹果异步执行任务技术,将应用程序中的线程管理的代码在系统级中实现.开发者只需要定义想要执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务.由于 ...
- linux下jenkins安装
在安装jenkins之前.首先确认jdk和tomcat,maven已经配置好 详细配置方法,请看的我博客. jdk:jdk的安装与配置 tomcat:tomcat的安装与配置 maven:maven的 ...
- BZOJ4031——HEOI小z的房间
题意:求某网格图生成树个数,对1e9取模 题解:题目是裸的Matrix-Tree定理,这不是我要说的重点,重点是对于这个取模的处理. 由于这不是个质数,所以不能直接乘逆元来当除法用.直接高斯消元肯定是 ...
- 防止 Chrome 屏蔽 非官方 扩展程序 教程(二)
说明 前面介绍过一篇通过开发人员模式载入扩展程序的方法,尽管能够正常使用,可是每次又一次打开 Chrome 都会弹出询问窗体,比較麻烦.这里介绍第二种防止屏蔽的方法.与前一种方法相比,尽管应用的步骤多 ...