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模 ...
随机推荐
- 高级组件——弹出式菜单JPopupMenu
弹出式菜单JPopupMenu,需要用到鼠标事件.MouseListener必须要实现所有接口,MouseAdapter是类,只写你关心的方法,即MouseAdapter实现了MouseListene ...
- (计算几何基础 叉积) nyoj68-三点顺序
68-三点顺序 内存限制:64MB 时间限制:1000ms 特判: No通过数:27 提交数:43 难度:3 题目描述: 现在给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,现在让你判断 ...
- qml: QtChart横纵轴label设置;
在qml中,使用ChartView作为图表展示区域, 但是并没有给定接口用来设置xlabel,ylabel. 没得办法,只能采用笨方案: (我的方法如下) import QtQuick 2.0 imp ...
- maven直接饮用jar包的写法
<dependency> <groupId>sample</groupId> <artifactId>com.sample</artifactId ...
- python3 aes加解密
# encoding: utf-8 import xlrd import os import yaml import logging.config from Crypto.Cipher import ...
- Vue computed属性
computed vs methods 我们可以使用Vue中的method计算出学科的总分,最终得到的总数结果是相同的. 在上例的基础上,我们把computed区块中的totalMarks函数整体移到 ...
- GlusterFS 分布式文件系统的使用入门-管理GlusterFS卷
GlusterFS 分布式文件系统的使用入门-管理GlusterFS卷 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.卷的扩容 您可以根据需要在群集联机且可用时扩展卷.例如,您 ...
- Yarn常用命令总结
Yarn常用命令总结 1>.查看任务列表 [root@storage101 ~]# yarn application -list :: INFO client.RMProxy: Connecti ...
- layui打印html页面转成pdf
<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8&q ...
- springMVC中a标签传递多个参数到后台的应用
1.js页面:返回json填充HTML部分代码 <a class='byCard' href="+path+"/static/toCardView/"+ data. ...