今天学到后面的知识,突然发现之前学习到的字典列表啥的都有点忘了,打算补一下之前学到的字典,到时候你看的时候,字符串、列表、字典、元祖这几个没啥顺序,刚开始学的时候了解下方法,当然你可以死记硬背下,后面用到的时候不记得再看也行,熟能生巧嘛!今天主要讲的是字典的方法。

  用相对正式的话来说的话,Python中的字典是python的一种数据结构,它的本质是key和value以及其对应关系的一种集合,一个key可以对应一个多个value。其实看下例子你就很容易理解了。

1、字典的创建(啥东西都得先出生才行吧)

字典的创建有几种方法:

第一种,直接以两个大括号中间以逗号分隔

第二种,通过dict这个对象直接赋值

第三种,通过dict对象对元祖和列表进行转换成字典

很神奇吧,其实还有一种创建方法,也给大家说下吧

第四种,dict1.fromkeys(seq[,val]),创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None);

演示给大家看下:

从这里可以看出来如果不设置val的话那么默认生成的就是None,大家也动手敲一下,嘻嘻!

接下来既然创建好了,那么就可以进行最经典的增、删、查、改的操作啦,哈哈哈!

为了让大家有个印象我先将字典常用的方法贴出来给大家看下:

dict1.clear()                              #移除dict1中的所有项
dict1.copy() #返回dict1的副本
dict1.fromkeys(seq[,val]) #创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None);
dict1.get(key[,default]) #如果dict1[key]存在,将其返回;否则返回给定的默认值None
dict1.keys()                               #返回dict1键的列表
dict1.pop(key[,hello]) #[]之间可以不要,dict1.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;

dict1.popitem() #从dict1中移除任意一项,并将其作为(键,值)对返回
dict1.setdefault(key[,default]) #如果dict1[key]存在则将其返回key的values;否则返回默认值None
dict1.update(other) #将other中的每一项加入到dict1中。
dict1.values() #返回dict1中值的列表
dict1.copy() #返回一个字典的浅复制
dict1.items()                              #返回表示dict1项的(键,值)对列表
dict1.iteritems() #从dict1.items()返回的(键,值)对中返回一个可迭代的对象
dict1.iterkeys() #从dict1的键中返回一个可迭代对象
dict1.itervalues() #从dict1的值中返回一个可迭代对象

2、字典增加

  这个相对比较简单,以下说字典的方法时都默认已经创建了一个字典,内容为dict1 = {'x': 1, 'y': 2}

要想增加内容,直接写新的键值加入即可,如右图

3、字典删除

删除的话有几种方法:

1.dict1.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;

通过pop指定key删除,如果key不存在则返回hello默认值

2.dict1.popitem(),这个是随机删除字典的一项,可能你使用的时候会觉得是删除最后一项,但是因为字典本身是无序的,因此不存在说一定是删除某个值,效率很高

3.dict1.clear() ,clear 方法清除字典中所有的项。这是个原地操作,所以无返回值(或者说返回 None)。

4.del dict1或del dict1[key],删除字典的值或者字典,删除字典后,字典将不存在

4、字典修改

字典修改也有几种方法,哎,方法真多,是不是记得很蛋疼啊,哈哈哈,其实不然,用手敲一下,抱着兴趣的心态看看,我相信你会变得很喜欢的。

字典最方便的修改方法就是直接赋值就好了,举个例子

是不是特别简单呢?直接通过key修改即可

这里另外说一个字典更新的方法:dict1.update(other),这个方法是什么呢?是把一个字典加到另一个字典里面去,没有的就添加,有的就修改。

5、字典查找

我们创建了字典往往是为了保存数据的,既然保存了我们想要的数据,那当然就要在适当的时候取出来了,这个是字典比较重要的,方法也较多,其实在我们学的数据库,linux对于查找的命令都是很重要而且较多的,下面来给大家逐个介绍下吧!

1.dict1.get(key[,default]) ,如果dict1[key]存在,将其返回;否则返回给定的默认值None  ,看下面的例子你就知道了

2.in,类似于python2.7里面的has_key,判断一个键是否在一个字典里面,有就True没有就False

3.直接通过key值查询value即可,

4.dict1.keys() ,keys 方法将字典中的键以 dict_keys 形式返回,dict1.values(),values方法将字典中的键以 dict_values 形式返回

.

5.dict1.setdefault(key,default=None) ,和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

6.dict1.items(),以列表返回可遍历的(键, 值) 元组数组

当然除了上面的还有一个copy的方法,这个也在这里说一下吧,虽然不是什么查询相关的,这个是复制,也叫浅拷贝。

dict1.copy(),什么是浅拷贝看下面的实例便知道了

实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的。dict3 父对象进行了深拷贝(也就是一级目录深拷贝),不会随dict1 修改而修改,子对象(二级目录)是浅拷贝所以随 dict1 的修改而修改。

零基础学习python_字典(25-26课)的更多相关文章

  1. 零基础学习python_文件(28-30课)

    本人小白一枚,随着现在对测试要求越来越高,动不动就要去会一门编程语言,没办法只能学习学习Python,今天看到几个月前还是菜鸟的人突然就已经能使用Python写简单系统了,没办法,虽然之前也简单学习过 ...

  2. 零基础学习python_字符串(14-15课)

    今天回顾下我之前学习python的第一个对象——字符串,这个对象真蛋疼,因为方法是最多的,也是最常见的类型,没有之一... 内容有点多,我就搜了下网上的资料,转载下这个看起来还不错的网址吧:http: ...

  3. 零基础学习python_爬虫(53课)

    1.Url的格式简单介绍,如下图: 2.我们要对网站进行访问,需要用到python中的一个模块或者说一个包吧,urllib(这个在python2中是urllib+urllib2,python3将这两个 ...

  4. 零基础学习python_生成器(49课)

    一个生成器函数的定义很像一个普通的函数,除了当它要生成一个值的时候,使用yield关键字而不是return.如果一个def的主体包含yield,这个函数会自动变成一个生成器(即使它包含一个return ...

  5. 零基础学习python_模块(50-52课)

    今天学了下模块,那什么是模块呢?其实我们写的以py结尾的一个文件就是一个模块,模块也就是程序 还记得我们之前学过容器.函数.类吧 容器    ->    数据的封装 函数    ->   ...

  6. 零基础学习python_异常处理(32-33课)

    我们写完python执行的时候是不是经常会遇到报错,而且报错都是大片红字,这样给别人的感受就是你写的程序怎么老是出问题啊,这样我们还咋么混下去呢?于是乎,就有了异常处理的东东. python的try语 ...

  7. 零基础学习python_类和对象(36-40课)

    今天我们开始学习面向对象的知识咯,之前我对面向对象也学的懵懵的,因为感觉知道好像又不是特别清楚,接下来我们一起来学习类和对象吧.零基础的课程我都是看小甲鱼的视频学的,没基础的可以去这个网址下载视频学习 ...

  8. 零基础学习python_魔法方法(41-48课)(迭代器)

    接下来这个为啥要叫魔法方法呢,额,这个嘛我是跟小甲鱼的视频取的名字一样的,因为会讲比较多杂的东西,有... 魔法方法详细阅读地址:http://bbs.fishc.com/thread-48793-1 ...

  9. 零基础学习python_列表和元组(10-13课)

    一时兴起今天又回过头来补一下列表和元组,先来说说列表哈,列表其实是python最经常用到的数据类型了,不仅经常用还很强大呢,这个跟C语言里面的数组是类似的,列表当然也可以增删改查,不过我可没打算用之前 ...

随机推荐

  1. 读DataSnap源代码(四)

    继续篇中的 function TCustomWebDispatcher.DispatchAction(Request: TWebRequest; Response: TWebResponse): Bo ...

  2. FireDAC内部初探

    procedure TForm1.Button1Click(Sender: TObject); var FCommIntf: IFDPhysCommand; //FireDAC.Phys.Intf F ...

  3. webGL之three.js入门1

    开场白 最近开始学前端,看了极客学院的前端教学视频,其实有C++或者java基础的人学前端还是很快的.但是html的标签和CSS的样式还是得多code才能熟练,熟能生巧,学以致用. 还在看js,因为有 ...

  4. 安装Microsoft SQL server Management Studio Express 2005 错误码是29506解决方案

    安装Microsoft SQL server Management Studio Express 2005,安装程序在安装此软件包时遇到一个错误,这可能表示此软件包有错.错误码是29506”权限问题. ...

  5. VBA Dumper v0.1.4.2, 提取office文档中的VBA代码,监查宏病毒恢复代码(演示版

    http://club.excelhome.net/thread-970051-1-1.html VBA Dumper 0.1.4.2更新,填补国内同类程序空白 此程序为演示版,可以在无office的 ...

  6. STL基础--迭代器和算法

    1 迭代器 Iterators 5种迭代器类型 随机访问迭代器: vector, deque, array // 允许的操作 vector<int> itr; itr = itr + 5; ...

  7. Hadoop概念学习系列之Hadoop集群动态增加新节点或删除已有某节点及复制策略导向 (四十三)

    不多说,直接上干货! hadoop-2.6.0动态添加新节点 https://blog.csdn.net/baidu_25820069/article/details/52225216 Hadoop集 ...

  8. 服务网关zuul之五:熔断

    路由熔断 当我们的后端服务出现异常的时候,我们不希望将异常抛出给最外层,期望服务可以自动进行一降级.Zuul给我们提供了这样的支持.当某个服务出现异常时,直接返回我们预设的信息. 如果没有配置fall ...

  9. 服务注册发现consul之一:consul介绍、安装、及功能介绍

    Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发.它具有很多优点.包括:基于 raft 协议,比较简洁: 支持健康检查, 同时支持 HTTP 和 ...

  10. [UE4]旋转小地图

    一.Canvas Panel的旋转原点是Render Transform——>Pivot,Pivot坐标的取值范围是0到1,左上角的pivot坐标是[0,0],右下角的pivot坐标是[1,1] ...