字典简介

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

字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d =

我的见解是:





字典就是很多不同的键值对的组合

就如想字典一样,每一个一个字就是一个,下面的解释就是每一个

键值对:就是简洁明了的证实每个对应关系的表述格式

然后就可以方便函数去读取键值对生成相应的表

可以理解为就是一个字典就是横着画的表

创建字典

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

一个简单的字典实例:

tinydict =

tinydict1 = { 'abc': 456 }
tinydict2 = { 'abc': 123, 98.6: 37 }

关于这里强调一下

当然字典里面的值可能是列表类型,元组类型

doc={'asda': ['dasda',123123],2:('dasdasda',2112123123),4:1231231}
print(doc)

这样依然是可以运行的

创建空字典

使用大括号 { } 创建空字典:

# 使用大括号 {} 来创建空字典
emptyDict = {} # 打印字典
print(emptyDict) # 查看字典的数量
print("Length:", len(emptyDict)) # 查看类型
print(type(emptyDict))

结果:

{}

Length: 0

<class 'dict'>

赋值的方式进行创建

doc=dict()
doc['sdada']='dasda'
doc[112]=12313
print(doc)

访问字典的值

用方括号访问具体的值

tinydict = {'Name': '123123', 'Age': 7, 'Class': 'First'}

print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])

如果用字典里没有的键访问数据,会输出错误如下:

print ("tinydict['Alice']: ", tinydict['Alice'])

Traceback (most recent call last):

File "test.py", line 5, in

print ("tinydict['Alice']: ", tinydict['Alice'])

KeyError: 'Alice'

修改字典

因为字典的键的值是不允许被随意修改的,而且要想修改相应的值必须锁定相应的键,大部门都是改值

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

tinydict['Age'] = 8               # 更新 Age
tinydict['School'] = "菜鸟教程" # 添加信息 print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显式删除一个字典用del命令,如下实例:

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

del tinydict['Name'] # 删除键 'Name'
print(tinydict)
tinydict.clear() # 清空字典
print(tinydict)

下面看一下删除之后的报错

del tinydict         # 删除字典
print(tinydict)

del() 方法后面也会讨论

字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

tinydict = {'Name': 'sdasd', 'Age': 7, 'Name': '小菜鸟'}

print ("tinydict['Name']: ", tinydict['Name'])

tinydict['Name']: 小菜鸟

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

tinydict = {['Name']: 'asdasd', 'Age': 7}

print ("tinydict['Name']: ", tinydict['Name'])

Traceback (most recent call last):

File "test.py", line 3, in

tinydict = {['Name']: 'Runoob', 'Age': 7}

TypeError: unhashable type: 'list'

嵌套字典

tinydict = {'RUNOOB' : {'url' : 'www.runoob.com'}}

字典的相关函数

get()

Python 字典 get() 函数返回指定键的值。

语法

dict.get(key[, value(可选)])

key -- 字典中要查找的键。

value -- 可选,如果指定键的值不存在时,返回该默认值。

返回指定键的值,如果键不在字典中返回默认值 None 或者设置的默认值。

tinydict = {'Name': 'Runoob', 'Age': 27}

print ("Age : ", tinydict.get('Age'))

# 没有设置 Sex,也没有设置默认的值,输出 None
print ("Sex : ", tinydict.get('Sex')) # 没有设置 Salary,输出默认的值 0.0
print ('Salary: ', tinydict.get('Salary', 0.0))

Age : 27

Sex : None

Salary: 0.0

与 dict[key] 访问元素区别

get(key) 方法在 key(键)不在字典中时,可以返回默认值 None 或者设置的默认值。

dict[key] 在 key(键)不在字典中时,会触发 KeyError 异常。

update() 方法

Python 字典 update() 函数把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里。

update() 方法语法:

dict.update(dict2)

tinydict = {'Name': 'Runoob', 'Age': 7}
tinydict2 = {'Sex': 'female' } tinydict.update(tinydict2) print ("更新字典 tinydict : ", tinydict)

keys() 方法

Python3 字典 keys() 方法返回一个视图对象。

dict.keys()、dict.values() 和 dict.items() 返回的都是视图对象( view objects),提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化。

 dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}
keys = dishes.keys()
values = dishes.values()
items=dishes.items()

pop方法

Python 字典 pop() 方法删除字典 key(键)所对应的值,返回被删除的值。

语法

pop(key[,default])

key - 要删除的键

default - 当键 key 不存在时返回的值

报错

如果 key 存在 - 删除字典中对应的元素

如果 key 不存在 - 返回设置指定的默认值 default

如果 key 不存在且默认值 default 没有指定 - 触发 KeyError 异常

py教学之字典的更多相关文章

  1. py教学之集合

    集合的概念 集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字 ...

  2. py教学之元组

    元组介绍 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号 ( ),列表使用方括号 [ ]. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. tup1 = ...

  3. py教学之列表

    列表是什么 list 是一些元素按照一定顺序排列的元素集合 序列是 Python 中最基本的数据结构. 序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推. Py ...

  4. py教学 之字符串处理·····

    访问字符串中的值 Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用. Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下: 变量 ...

  5. python第五天 字典

    今天,已经系统的学习了一下文件相关操作!对三级菜单代码进行的优化: 菜单文件:以字典格式 menu.txt {'第一层':{'第二层':{'第三层':['内容1','内容2','内容3']}},'第一 ...

  6. Python——字典与字典方法

    字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字.字符串.元组,这种结构类型也称之为映射.字典类型是Python中唯一內建的映射类型,基本的操作包括如下: (1)len():返回字典中键— ...

  7. Python 学习第十九天 django知识

    一,django 知识总结 1,同一个name属性的标签,多个值获取 <form action="/login/" method="POST" encty ...

  8. python之ATM

    每次做一点就发出来,大神不要嫌重复 2016/11/4 今天来搞ATM,反正逃不了的,说来惭愧,这个作业是我10/4号20天前拿到的,当时是万脸蒙比的,今天又做了一点,现在算是百脸蒙比吧. 一.需求: ...

  9. SQLMAP源码分析-目录结构

    -----------------------------------------------------------------------------│  README.md│  sqlmap.c ...

随机推荐

  1. python同时识别多张人脸(运用face_recognition)

    之前发的博客和网上流传的代码严格来说都只算得上是人脸检测,不能区别人脸,今天来说说真的人脸识别 篇幅所限,就举两张人脸的例子了,本程序需要安装face_recognition 下面是全部源代码: im ...

  2. c语言KMP匹配算法与字符串替换算法

    一.字符串匹配算法 (1)传统匹配算法BF int Index_BF(char* S, char* T){ int i=1,j=1; while(i<=strlen(S) && ...

  3. JIRA操作之JQL

    搜索功能 Jira的搜索功能非常强大,有专用的搜索语言JQL(Jira Query Language).Jira的Python库是基于JQL语法搜索的,返回的是搜索到的问题列表. jira.searc ...

  4. JavaScript之数组高阶API—reduce()

    一文搞懂JavaScript数组中最难的数组API--reduce() 前面我们讲了数组的一些基本方法,今天给大家讲一下数组的reduce(),它是数组里面非常重要也是比较难的函数,那么这篇文章就好好 ...

  5. Karmada大规模测试报告发布:突破100倍集群规模

    摘要:在本文中,我们将介绍用于测试的相关指标,如何进行大规模测试,以及我们如何实现大规模的集群接入. 本文分享自华为云社区<突破100倍集群规模!Karmada大规模测试报告发布>,作者: ...

  6. getAddress和getHostAddress的区别

    getAddress方法和getHostAddress类似,它们的唯一区别是getHostAddress方法返回的是字符串形式的IP地址,而getAddress方法返回的是byte数组形式的IP地址.

  7. C#where关键字约束

    where关键字的用法 where关键词一个最重要的用法就是在泛型的声明.定义中做出约束. 约束又分为接口约束.基类约束.构造函数约束.函数方法的约束. 1.接口约束,泛型参数必须实现相应的接口才可以 ...

  8. 修改input标签里面的提示文字(placeholder)的样式

    使用 ::-webkit-input-placeholder 伪类 input::-webkit-input-placeholder{ // 修改字体大小 font-size:12px; // 修改文 ...

  9. 你认识的C# foreach语法糖,真的是全部吗?

    本文的知识点其实由golang知名的for循环陷阱发散而来, 对应到我的主力语言C#, 其实牵涉到闭包.foreach.为了便于理解,我重新组织了语言,以倒叙结构行文. 先给大家提炼出一个C#题:观察 ...

  10. IOS AND Android 配置Fiddler环境

    下载:http://rj.baidu.com/soft/detail/10963.html?ald 运行Fiddler点击Tools: 选择设置选项:   1.     选择HTTPS新选项卡. 2. ...