python第七天,dict
在python里边创建字典的方法有如下几种:
>>> dict1= dict((('F',),('C',),('h',),('i',),('s',)))
>>> print(dict1)
{'F': , 'C': , 'h': , 'i': , 's': }
>>> dict1['C'] >>>
>>>
>>> dict2 = {'F':,'C':,'h':,'i':}
>>> dict2['C'] >>>
>>> a = dict(one=,two=,three=)
>>> a
{'one': , 'two': , 'three': }
>>> a['one'] >>>
>>> c = dict(zip(['one','two','three'],[,,]))
>>> c
{'one': , 'two': , 'three': }
>>>
>>> d = dict([('two',),('one',)])
>>> d
{'two': , 'one': }
>>>
也可以通过fromkeys(S[,v])来进行创建一个字典,其中S是键,v是值,是可选的。
# 通过键创建
>>> dict01 = dict.fromkeys((1,2,3))
>>> dict01
{1: None, 2: None, 3: None}
>>>
# 这里需要注意的是v这个值,不管你如何输入,他都会把这个地方的值看为一个,然后分别赋值给键
>>> dict02 = dict.fromkeys((1,2,3),(2,3,4))
>>> dict02
{1: (2, 3, 4), 2: (2, 3, 4), 3: (2, 3, 4)}
>>>
一般我们在使用的字典的时候,经常性会通过键来索引出它的值,例如
dict0={'name':'jerry','sex':'girl','age':12} #那么 我们通过键取值时经常会用到 dict['name']这种方法来进行取值,但是当我们所取的键并不存在该字典中,就会报错,比如:
print(dict0['phone']) Traceback (most recent call last):
File "<pyshell#62>", line 1, in <module>
dict0['phone']
KeyError: 'phone' #那么我们如何可以避免这个问题,因为用这个返回给用户是一个不好的体验,我们想如果它不存在那么返回空,不报错,那我们就用到了get()方法。例如:
>>> dict0.get('phone')
>>>
>>> print(dict0.get('phone'))
None
>>>
关于字典的清空,.clear()和直接用一个{}进行重置的优缺点
#假设我们有一个字典a
>>> a={'name':'jerry'}
>>>
>>> b=a
>>>
>>> b
{'name': 'jerry'}
>>>
>>> a={}
>>> a
{}
>>> b
{'name': 'jerry'}
>>>
#从上边的例子不难看出,当我们清空a之后,但是b是可以访问到以前的值的,我们可以理解为,b中还依然存放这那些值的指针,
#而a只不过是将之前那个值的指针更换为一个新的指针。所以为了彻底清空那个值我们可以通过下面这个方法来清空
>>> a = b
>>>
>>> a.clear()
>>>
>>> a
{}
>>> b
{}
>>>
关于.copy()和直接赋值的区别
#首先我们定义一个a
>>> a={'name':'jerry'}
#利用copy给b赋值
>>> b=a.copy()
#利用常规方法给c赋值
>>> c=a
>>> a
{'name': 'jerry'}
>>> b
{'name': 'jerry'}
>>> c
{'name': 'jerry'}
>>>
#从上边的打印可以看到他们三个全部一样,但是实际果真如此么?
#我们通过给b添加一个新的键值对来看一下
>>> b['age']=12
>>> a
{'name': 'jerry'}
#a并没有改变
>>> b
{'name': 'jerry', 'age': 12}
>>>
#那我们给c一个新的键值对看一下
>>> c['sex']='girl'
>>> a
#a是变化的
{'name': 'jerry', 'sex': 'girl'}
>>> c
{'name': 'jerry', 'sex': 'girl'}
>>>
#我们通过 id()来获取下他们三个的内存地址
>>> id(a)
48909912
>>> id(b)
48924136
>>> id(c)
48909912
#从上边我们可以看出,a c的内存地址是一致的,
#而b是新开辟了一个内存空间,所以当我们更改b的时候a并没有发生变化,
#因为他们并不在一个内存空间,而c发生改变时a也会发生改变就不奇怪了
>>>
和列表一样,字典也提供了pop()来进行删除元素,例如
#删除指定键,并返回相应的值
>>> a
{'name': 'jerry', 'sex': 'girl'}
>>> a.pop('sex')
'girl'
>>> a
{'name': 'jerry'}
>>> #删除随机的一个键值对
>>> a
{'name': 'jerry', 'sex': 'girl'}
>>>
>>> a.popitem()
('sex', 'girl')
>>> a
{'name': 'jerry'}
>>>
setdefault(S[,v]),随机一个位置插入,当没有给值的时候,会默认给一个None
>>> a
{'name': 'jerry'}
>>> a.setdefault('小白')
>>> a
{'name': 'jerry', '小白': None}
>>> a.setdefault('sex','girl')
'girl'
>>>
>>> a
{'name': 'jerry', '小白': None, 'sex': 'girl'}
>>>
update(dict),是利用一个字典来更新另一个字典。
>>> a
{'name': 'jerry', '小白': None, 'sex': 'girl'}
>>>
>>> b={'phone':123456}
>>> b
{'phone': 123456}
#利用b字典来更新a这个字典
>>> a.update(b)
>>> a
{'name': 'jerry', '小白': None, 'sex': 'girl', 'phone': 123456}
>>>
python第七天,dict的更多相关文章
- 简学Python第七章__class面向对象高级用法与反射
Python第七章__class面向对象高级用法与反射 欢迎加入Linux_Python学习群 群号:478616847 目录: Python中关于oop的常用术语 类的特殊方法 元类 反射 一.P ...
- python基础之字典dict和集合set
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...
- 初学Python(七)——控制语句
初学Python(七)——控制语句 初学Python,主要整理一些学习到的知识点,这次是控制语句. if : #-*- coding:utf-8 -*- age=raw_input('input yo ...
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
- Python在七牛云平台的应用(三)简单的人脸识别
前言 这是最后一篇介绍python在七牛云平台的应用了,因为-前两篇文章第一篇分享了怎么安装七牛的官方库以及怎么对自己的空间进行下载上传,删除等行动.而第二篇则分享了怎么利用七牛的API接口,由于七牛 ...
- Python在七牛云平台的应用(二)图片瘦身
(一)七牛云平台的图片瘦身功能简介:(引用自官网) 针对jpeg.png格式图片 瘦身后分辨率不变,格式不变. 肉眼画质不变. 图片体积大幅减少,节省 CDN 流量 官网给的图片压缩率很高,官网给的「 ...
- Python实现七牛云视频播放
这篇文章是使用Python的Web框架Django Rest Framework来提供视频相关的api接口,主要功能包括视频上传.视频转码.视频访问授权.删除视频文件.视频截图功能. 七牛云上的基本概 ...
- 孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9并使用pydocx模块将结果写入word文档
孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天终于完成了对docx模块针对 ...
- 孤荷凌寒自学python第七十八天开始写Python的第一个爬虫8
孤荷凌寒自学python第七十八天开始写Python的第一个爬虫8 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天止基本完成了对docx模块针 ...
- 孤荷凌寒自学python第七十七天开始写Python的第一个爬虫7
孤荷凌寒自学python第七十七天开始写Python的第一个爬虫7 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 今天的学习仍然是在纯粹对docx模 ...
随机推荐
- python赋值和生成器
在python赋值过程中,对单个变量的赋值,在所有语言中都是通用的,如果是对两个变量同时进行赋值,这个时候,就会出现一点点小的差异.例如在下面的一两行代码中. a , b = b , a+b 这是同时 ...
- u-boot(二)makefile
目录 u-boot(二)makefile 引入 目录结构(1.1.6) 配置文件 目标 配置具体的单板 编译阶段 过程 链接入口 配置链接地址 附录 附录A:mkconfig解析 附录B 链接脚本 t ...
- MySQL权限授权认证详解
MySQL权限授权认证详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL权限系统介绍1>.权限系统的作用是授予来自某个主机的某个用户可以查询.插入.修改.删除 ...
- jmeter元件执行顺序及简介
最近在学习Jmeter,在进行实操之前,先查看了官方文档.因为官方文档是英文的,为了方便以后查看,自己翻译了一部分,中间个别地方根据自己的理解简单地翻译了部分.如果翻译等有问题,欢迎指正. 一.执行顺 ...
- 关于react上线系列问题及解决方案
近使用react做了一个音乐播放器小项目,在线下开发完成后,测试一切都没有问题,于是打算打包上线.首先注册了一个新浪云账号,然后创建了一个SAE应用实例,再然后就照着新浪云给出的远程仓库进行push. ...
- Golang基础语法1
打开cmd命令窗口 保存,编译,执行: 1.保存到一个×××.go的文件(我这里保存到 E:\GoTest\hello.go 下) 2.编译,在命令提示符中执行命令: go build -o E ...
- 关于Mysql的高级查询的操作
前言:作为一名后端的程序员操作数据库的能力是我们基本的技能,而连表查询是我们的这个技能的关键点所在.注意这里顾明思义是对数据的查询的操作 (一).联合查询(关键字union/union all) 什么 ...
- axis 入门【原】
Call call = (Call) service.createCall();call.setOperationName(new QName("命名空间地址", "方法 ...
- Linux命令(十三)make_makefile基础
1. 好处 一次编写,终身受益 2. 命名规则 makefile Makefile 3. 三要素 目标 依赖 规则命令 4. 第一版makefile 目标:依赖 tab键 规则命令 makefile: ...
- 细说shiro之一:shiro简介
官网:https://shiro.apache.org/ 一. Shiro是什么Shiro是一个Java平台的开源权限框架,用于认证和访问授权.具体来说,满足对如下元素的支持: 用户,角色,权限(仅仅 ...