字典的基本概念

目录

1.字典是什么?

2.字典的创建

3. 字典的基本操作

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

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

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

5.字典的删除操作

6.字典的遍历操作

6.1使用for循环进行遍历

 6.2取出所有key和value

7.可哈希的类型


1.字典是什么?

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

什么是键值对?

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

2.字典的创建

#1.创建字典
a={}
print(type(a))
b=dict()
print(type(b))

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

 字典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)

#in只是判断key是否存在,和value无关
print('zhangsan' in a)

#not in 来判断key在字典中不存在
print('id' not in a)
print('classId' not in a)

 

 


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

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

 

 

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

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

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

#1.在字典中新增元素,使用[ ]来进行

a={
    'id':1,
    'name':'zhangsan'

}

#这个操作就是往字典里插入新的键值对
a['score']=90
print(a)

#2.在字典中,根据key修改value,也是使用[ ]来进行的
a['score']=100
print(a)

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

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

 

5.字典的删除操作

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

 

6.字典的遍历操作

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

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

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

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

字典中的key不能重复。

6.1使用for循环进行遍历

#1.直接使用for循环来遍历字典
a={
    'id':1,
    'name':'zhangsan',
    'score':90
}

for key in a:
    print(key,a[key])

 6.2取出所有key和value

a={
    'id':1,
    'name':'zhangsan',
    'score':90
}

# for key in a:
#     print(key,a[key])

print(a.keys())
print(a.values())
print(a.items())

#1.直接使用for循环来遍历字典
a={
    'id':1,
    'name':'zhangsan',
    'score':90
}

for key,value in a.items():
    print(key,value)

 

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......

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值