从零开始的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模块.正则表达式模式被编译成一系列的字节码 ...
随机推荐
- 课时18.h标签和p标签以及hr标签(掌握)
如何在webstorm中利用快捷键创建一个新的html的文件? 同时按下键盘上的ctrl+alt+insert(windows) 同时按下键盘上的ctrl+alt+n(os) h标签系列(header ...
- weex图片加载更多方法loadmore的使用
首先,放一个weex中loadmore使用的demo,可以看一下http://dotwe.org/vue/8dd2a10c69e149ae8971f8298cc8bebf 1.在list标签上添加 @ ...
- hdu_4135_Co-prime
Given a number N, you are asked to count the number of integers between A and B inclusive which are ...
- 字符串和日期的相互转换,在oracle和mysql的用法
1. 字符串转日期格式 Oracle to_date(字符串 , 日期格式) 日期格式如下: D 一周中的星期几 DAY 天的名字,使用空格填充到9个字符 DD 月中的第几天 DDD 年中的第几天 D ...
- Jquery复选框的全选全不选及选择所有复选框实现全选的复选框
Jquery代码 $(function () { $(":checkbox.parentfunc").click(function () { //如何获取被点击的那个复选框 $(t ...
- Django时间时区问题
在django1.4以后,存在两个概念 naive time 与 active time. 简单点讲,naive time就是不带时区的时间,Active time就是带时区的时间. 举例来说,使用d ...
- python新手第一天学习笔记-第一个ptyhon程序和python变量
一.python 的注释和第一个python 程序 : 1.单行注释 # Author Xiajq 2.多行注释 ''' ------------注释内容----------------------- ...
- C语言中结构体的访问方法解读
在C语言中,对结构体的访问一般有两种常规方式:"."访问和"->"访问.那么两者有什么区别呢?对C语言有一定了解的同学应该知道,我们新建一个结构体的时候, ...
- 安装Flutter环境
mac 环境安装 系统需求 操作系统: macOS (64-bit) 硬盘: 700 MB 工具: bash, mkdir, rm, git, curl, unzip, which 环境安装 SDK ...
- 20145207 myeclipse测试
实验博客