字典

  字典是另一种可变容器模型,且可存储任意类型对象。

一、添加

(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——字典的更多相关文章

  1. 从零开始的Python学习Episode 17——序列化

    序列化 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语 言中也被称之为serialization,marshalling,flattenin ...

  2. 从零开始的Python学习Episode 10——函数

    函数 一.函数的创建 简单格式 def function_name(参数表): 函数体 return 如果没有写return,函数会默认返回一个none 二.函数的参数 必需参数: 调用函数时必需参数 ...

  3. 从零开始的Python学习Episode 9——集合

    集合 集合是一个无序的,不重复的数据组合,是python基本的数据类型,把不同的元素组成一起就形成集合. 一.创建集合 s = set('smile')list = ['1','2','3']prin ...

  4. 从零开始的Python学习Episode 23——进程

    ---恢复内容开始--- 进程 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Python提供了非常好用 ...

  5. 从零开始的Python学习Episode 22——多线程

    多线程 线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. ...

  6. 从零开始的Python学习Episode 20——面向对象(3)

    面向对象之封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体. 隐藏 在python中用双下划线开 ...

  7. 从零开始的Python学习Episode 19——面向对象(2)

    面向对象之继承 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称 为基类或超类,新建的类称为派生类或子类. 子类会“”遗传”父类的属性,从而解决代码重用问 ...

  8. 从零开始的Python学习Episode 16——模块

    一.模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相 ...

  9. 从零开始的Python学习Episode 15——正则表达式

    正则表达式 正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现,所以使用时要导入re模块.正则表达式模式被编译成一系列的字节码 ...

随机推荐

  1. 【微信开发】微信开发模式 api 接口文档简介

    微信公众平台分为订阅号和服务号,服务号提供9大接口,需要通过微信认证后才能使用这些接口.认证费用300元.下面是接口的大致介绍: 1. 语音识别:通过语音识别接口,用户发送的语音,将会同时给出语音识别 ...

  2. Unity 游戏框架搭建 (二十三) 重构小工具 Platform

    在日常开发中,我们经常遇到或者写出这样的代码 var sTrAngeNamingVariable = "a variable"; #if UNITY_IOS || UNITY_AN ...

  3. 小程序OSS图片上传

    图片上传加水印问题,代码如下! chooseImage: function (e) { var that = this; wx.chooseImage({ sizeType: ['original', ...

  4. ABAP术语-BAPI ExplorerSupertype

    Supertype 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/17/1109837.html Object type from whic ...

  5. Comparable和Compartor的区别

    1.List对象实现Comparable接口,使对象具备可比性 package tao; import java.util.ArrayList; import java.util.Collection ...

  6. Sass变量及嵌套

    1. 变量:SASS允许使用变量,所有变量以$开头. 变量声明:$highlight-color: #000; 注意:变量可以在css规则块定义之外存在.如下例子: $nav-color: #F90; ...

  7. git 项目常用

    本地分支推送到远程分支: (1),git init,git add . (2),git commit -m "首次提交" (3),git remote add origin '远程 ...

  8. JavaScript&jQuery 基本使用

    * 最近连续加班加点三周* 遭不住了 ...* 来点 js / jq 的货* 一个人撸PHP 撸HTML 撸CSS 撸JavaScript 撸jQuery* 不管有没有用记录一下** 1:jQuery ...

  9. ruby 爬虫爬取拉钩网职位信息,产生词云报告

    思路:1.获取拉勾网搜索到职位的页数 2.调用接口获取职位id 3.根据职位id访问页面,匹配出关键字 url访问采用unirest,由于拉钩反爬虫,短时间内频繁访问会被限制访问,所以没有采用多线程, ...

  10. 类加载器 ClassLoder详解

    一.类加载器定义 从作用的角度来认识类加载器:(根据API文档) 1.类加载器是一个负责加载类的对象,而ClassLoader是一个抽象类.类加载器将xxx.class文件加载到JVM,生成xxx的C ...