从零开始的Python学习Episode 5——字典
字典
字典是另一种可变容器模型,且可存储任意类型对象。
一、添加
(1)直接添加
dict={'name':'smilepup'}
dict['age']=20
dict['name']='piggy'
print(dict)
#输出{'name': 'piggy', 'age': 20}
若输入的键存在,就把键对应的值更新为新的值。
若输入的键不存在,就把输入的键值对添加进字典。
(2)setdefault()方法
dict={'name':'smilepup'}
a = dict.setdefault("age",20)
b = dict.setdefault("name",'piggy')
print(dict)
print(a)
print(b)
#输出
#{'name': 'smilepup', 'age': 20}
#20
#smilepup
若输入的键存在,不改动,并返回键对应的已有值。
若输入的键不存在,就把输入的键值对添加进字典,并返回新添加的值。
二、查找
(1)根据键来查找对应的值
dict={'name':'smilepup'}
print(dict['name'])
#输出smilepup
若输入的键不存在会报错。
(2)get() 方法
dict={'name':'smilepup'}
print(dict.get('name'))
print(dict.get('age'))
#输出
#smilepup
#None
若输入的键存在,并返回键对应的值。
若输入的键不存在,就返回None。
(2)查找所有的键
dict={'name':'smilepup','age':20}
print(list(dict.keys()))
#输出['name', 'age']
返回一个dict_keys类型的值,表示字典中所有的键。若要使用这些键,可以把它转换为列表。
(2)查找所有的值
dict={'name':'smilepup','age':20}
print(list(dict.values()))
#输出['smilepup', 20]
与上同理。
(3)查找所有的键值对
dict={'name':'smilepup','age':20}
print(list(dict.items()))
#输出[('name', 'smilepup'), ('age', 20)]
与上同理
三、修改
(1)直接法
dict={'name':'smilepup','age':20}
dict['age'] = 21
print(dict)
#输出{'name': 'smilepup', 'age': 21}
(2)update()方法
dict={'name':'smilepup','age':20}
dict2 = {'gender':'male','age':'21'}
dict.update(dict2)
print(dict)
#输出{'name': 'smilepup', 'age': '21', 'gender': 'male'}
创建一个新的字典来存信息,然后对原有字典进行更新,有点像列表的extend()。
要注意的是:若有键已存在,则修改更新已有键对应的值;若键不存在,则添加新的键值对。
四、删除
(1)del 操作
dict={'name':'smilepup','age':20,'gender':'male'}
del dict['name']
print(dict)
#输出{'age': 20, 'gender': 'male'}
删除所选键的键值对。
(2)clear()方法
dict={'name':'smilepup','age':20,'gender':'male'}
dict.clear()
print(dict)
#输出{}
清空字典,留下一个空字典。
(3)pop()方法
dict={'name':'smilepup','age':20,'gender':'male'}
ret = dict.pop('age')
print(dict)
print(ret)
#输出
#{'name': 'smilepup', 'gender': 'male'}
#20
删除所选键的键值对,并返回已删除键值对的值。
(4)popitem() 方法
dict={'name':'smilepup','age':20,'gender':'male'}
ret = dict.popitem()
print(dict)
print(ret)
#输出
#{'name': 'smilepup', 'age': 20}
#('gender', 'male')
随机删除一个键值对,并已元组的方式返回所删除的键值对。
五、用for循环遍历字典
方法一:
dict={'name':'smilepup','age':20,'gender':'male'}
for i in dict:
print(i, dict[i])
#输出
#name smilepup
#age 20
#gender male
方法二:
dict={'name':'smilepup','age':20,'gender':'male'}
for i,v in dict.items():
print(i,v)
#输出
#name smilepup
#age 20
#gender male
从零开始的Python学习Episode 5——字典的更多相关文章
- 从零开始的Python学习Episode 17——序列化
序列化 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语 言中也被称之为serialization,marshalling,flattenin ...
- 从零开始的Python学习Episode 10——函数
函数 一.函数的创建 简单格式 def function_name(参数表): 函数体 return 如果没有写return,函数会默认返回一个none 二.函数的参数 必需参数: 调用函数时必需参数 ...
- 从零开始的Python学习Episode 9——集合
集合 集合是一个无序的,不重复的数据组合,是python基本的数据类型,把不同的元素组成一起就形成集合. 一.创建集合 s = set('smile')list = ['1','2','3']prin ...
- 从零开始的Python学习Episode 23——进程
---恢复内容开始--- 进程 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Python提供了非常好用 ...
- 从零开始的Python学习Episode 22——多线程
多线程 线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. ...
- 从零开始的Python学习Episode 20——面向对象(3)
面向对象之封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体. 隐藏 在python中用双下划线开 ...
- 从零开始的Python学习Episode 19——面向对象(2)
面向对象之继承 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称 为基类或超类,新建的类称为派生类或子类. 子类会“”遗传”父类的属性,从而解决代码重用问 ...
- 从零开始的Python学习Episode 16——模块
一.模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相 ...
- 从零开始的Python学习Episode 15——正则表达式
正则表达式 正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现,所以使用时要导入re模块.正则表达式模式被编译成一系列的字节码 ...
随机推荐
- 大数据框架-Hbase
大规模结构化集群存储数据库.Table中的所有行都按照row key的字典序排列. 主键:row Key.访问行只能通过rowKey访问(范围或者准确值),或者全表扫描: 列族:cloumn fami ...
- Web—05-常用css列表
color 设置文字的颜色,如: color:red; font-size 设置文字的大小,如:font-size:12px; font-family 设置文字的字体,如:font-family:'微 ...
- js中两个日期大小比较,获取当前日期,日期加减一天
一.两个日期大小比较 1.日期参数格式:yyyy-mm-dd // a: 日期a, b: 日期b, flag: 返回的结果 function duibi(a, b,flag) { var arr = ...
- Struts2知识点小结汇总
Struts2部分 1. JavaEE软件三层结构和MVC的区别? JavaEE软件三层机构是由sun公司提供JavaEE开发规范的:Web层(表现层).业务逻辑层.数据持久层.[其中WEB层会使用前 ...
- linux系统的介绍与环境搭建准备38-40
操作系统(OS):用于控制管理计算机,形成在用户和机器之间传递信息的系统软件 linux是什么? <--unix系统是linux的前身---> 特点: 开放的源代码,自由修改 自由传播,没 ...
- Virtualization state: Optimized (version 7.4 installed)
[Virtualization state: Optimized (version 7.4 installed)] [root@localhost ~]# cd /mnt/ [root@localho ...
- IO流之字符流
字符流产生的原因: 1.每次只能够读取一个字节或者一个字节数组,每次在需要转换成字符或者字符串的时候不是很方便2.不同的操作系统针对换行符的处理不方便3.有的时候会出现中文乱码(中文占两个字节,如果针 ...
- hadoop生态搭建(3节点)-10.spark配置
# https://www.scala-lang.org/download/2.12.4.html# ================================================= ...
- 二、linux编译环境的搭建
1.linux编译工具安装 vim安装:apt-get install vim 注意:使用C语言源代码语法加亮功能,需要配置文件/etc/vim/vimrc,加入代码syntaxon.文件后缀必须为. ...
- JAVA基础 - 自定义异常类
自定义异常类,代码还不是很明白,先存着以后参考. package week6; class ScoreException extends Exception { private static fina ...