目录

1.字典是什么?

2.字典的创建

3. 字典的基本操作

3.1使用in判断某个key是否在字典中存在

3.2使用[ ]来根据key获取到value

4.字典的新增和修改操作

5.字典的删除操作

6.字典的遍历操作

6.1使用for循环进行遍历

 6.2取出所有key和value

7.可哈希的类型


1.字典是什么?

字典是一种存储键值对的结构。


什么是键值对?

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_键值对

 在Python的字典中,可以同时包含很多个键值对,同时要求这些键,不能重复。


2.字典的创建

#1.创建字典 a={} print(type(a)) b=dict() print(type(b)) #2.创建字典的同时设置初始值 a={'id':1,'name':'zhangsan'}

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_for循环_02

 字典a中包含了两个键值对

(1)'id':1 key就是'id',value就是1

(2)'name':'zhangsan' key就是'name',value就是'zhangsan'。


一个字典中的key value 的类型不必要都一样,但是对于key的类型有约束。

对于value的类型没有约束。


3. 字典的基本操作

3.1使用in判断某个key是否在字典中存在

#3.使用in来判定某个key是否在字典中存在 a={ 'id':1, 'name':'zhangsan' } print('id' in a) print('classId' in a)

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_开发语言_03

#in只是判断key是否存在,和value无关 print('zhangsan' in a) #not in 来判断key在字典中不存在 print('id' not in a) print('classId' not in a)

 

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_键值对_04

 

3.2使用[ ]来根据key获取到value


#4.使用[ ]来根据key获取到value a={ 'id':1, 'name':'zhangsan', 100:'lisi' } print(a['id']) print(a['name']) print(a[100])

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_增删改查_05

 

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_python_06

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_键值对_07

 


对于字典来说,使用in或者[ ]来获取value(字典背后使用了特殊的数据结构:哈希表),都是非常高效的操作!!!

对于列表来说,使用in比较低效(需要把整个列表遍历一遍),而使用[ ](类似于数组/顺序表取下标)是比较高效的。


4.字典的新增和修改操作

#1.在字典中新增元素,使用[ ]来进行 a={ 'id':1, 'name':'zhangsan' } #这个操作就是往字典里插入新的键值对 a['score']=90 print(a) #2.在字典中,根据key修改value,也是使用[ ]来进行的 a['score']=100 print(a)

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_for循环_08

如果key不存在,往里写入,相当于新增键值对。


如果key存在,往里写入,则相当于key修改value。

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_增删改查_09

 

5.字典的删除操作

#3.使用pop方法,根据key来删除键值对 a.pop('name') print(a)

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_python_10

 

6.字典的遍历操作

遍历指的就是能够把一个可迭代对象,里面包含的元素依次取出来,并进行一些操作,整个过程要求不重不漏。


字典被设计出来的初衷,不是为了实现遍历,而是为了实现增删改查。


字典是哈希表,进行增删改查操作,效率是非常高的,而字典的遍历则效率就要差一些。


哈希表这个结构设计非常巧妙,能够以'常数级'时间复杂度(无论字典有多少元素,新增,修改,查找,删除都是固定时间,不会因为元素多了,操作就慢了)来完成增删改查。


字典中的key不能重复。


6.1使用for循环进行遍历


#1.直接使用for循环来遍历字典 a={ 'id':1, 'name':'zhangsan', 'score':90 } for key in a: print(key,a[key])

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_开发语言_11

 6.2取出所有key和value


定义一个字典类型的变量保存一段文字python 怎么定义一个字典_python_12

a={ 'id':1, 'name':'zhangsan', 'score':90 } # for key in a: # print(key,a[key]) print(a.keys()) print(a.values()) print(a.items())

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_for循环_13

#1.直接使用for循环来遍历字典 a={ 'id':1, 'name':'zhangsan', 'score':90 } for key,value in a.items(): print(key,value)

定义一个字典类型的变量保存一段文字python 怎么定义一个字典_python_14

 

7.可哈希的类型

在Python中专门提供了一个hash函数,可以计算这个变量的hash值。

#使用hash函数能够计算出一个变量的hash值 print(hash(0)) print(hash(3.14)) print(hash('hello')) print(hash(True)) #元组也可以计算哈希值 print(hash(1,2,3)) #有的类型不能计算哈希值(列表、字典) print(hash([1,2,3]))

也就是列表和字典不可以作为字典的key,其他的类型可以作为字典的key

列表可以通过append操作发生改变,不可计算hash

不可变的对象,一般就是可hash的,可变的对象,一般就是不可哈希的

 字典、列表、元组Python中非常常用的内置类型,相比于int,str,float......

他们内部可以再包含其他元素了,可以称为容器/集合类。