python容器 dict

dict
定义
dict中,每一项包含一个key和一个value,key和value是一一对应的。

d = {
    'Alice': 45,
    'Bob': 60,
    'Candy': 75,
    'David': 86,
    'Ellena': 49
}

print(d)

==>{‘Alice’: 45, ‘Bob’: 60, ‘Candy’: 75, ‘David’: 86, ‘Ellena’: 49}

在定义里,我们使用花括号{}表示这是一个dict,然后key和value之间使用冒号:分割,并且每一组key:value的最后,以逗号,表示这一组的结束。
我们也可以使用以下的方式定义一个dict。
d = dict()
print(d) # ==> {}
不过这种定义方式,默认得到的是一个空dict,需要调用函数往里面添加数据。

读取dict中元素值
d[key]
if ‘Alice’ in d:
print(d[‘Alice’]) # ==> 45
if ‘Dodo’ in d: # Dodo不存在,所以不会走下面的逻辑
print(d[‘Dodo’])
d.get(key)
print(d.get(‘Alice’)) # ==> 45
print(d.get(‘Dodo’)) # ==> None

添加元素
需要往里面添加Dodo、Mimi的成绩时,可以使用赋值语句往里面添加元素:

d[‘Mimi’] = 72
d[‘Dodo’] = 88
value可以是任意类型的元素,可以是list、tuple等
更新元素
当key不存在时,往dict中添加对应的key: value元素。
当key存在时,会更新dict,用新的value替换原来的value。
为了避免不必要的覆盖问题,我们需要先***判断key是否存在,然后再做更新。***

删除元素
pop()方法需要指定需要删除的元素的key,并返回对应的value。
假设Alice转校了,需要把Alice的成绩删除,可以这样写:
print(d) # ==> {‘Alice’: 45, ‘Bob’: 60, ‘Candy’: 75, ‘David’: 86, ‘Ellena’: 49}
alice_score= d.pop(‘Alice’)
print(alice_score) # ==> 45
print(d) # ==> {‘Bob’: 60, ‘Candy’: 75, ‘David’: 86, ‘Ellena’: 49}

若Alcie不存在 会报错,先判断

name = 'Alice'
if name in **d.keys()**:
    d.pop(name)
else:
    print('{} not in d'.format(name))

特点

***优点***查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
***缺点***是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢
key不可变
遍历dict
遍历dict有两种方法
第一种是遍历dict的所有key,并通过key获得对应的value。

d = {
    'Alice': 45,
    'Bob': 60,
    'Candy': 75,
    'David': 86,
    'Ellena': 49
}
for key in d: # 遍历d的key
    value = d[key]
    if value > 60:
        print(key, value)
 ==> Candy 75
==>David 86

第二种方法是通过dict提供的items()方法,items()方法会返回dict中所有的元素,每个元素包含key和value。

for key, value in d.items():
    if value > 60:
        print(key, value)
        

==> Candy 75
==>David 86

获取dict的所有key
dict提供keys()函数,可以返回dict中所有的key。

d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
for key in d.keys():
    print(key)

获取dict所有的value
dict提供values()函数,可以返回dict中所有的value。

d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
for key in d.values():
    print(key)
**清除所有元素**

dict提供clear()函数,可以直接清除dict中所有的元素。

d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
print(d) # ==> {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
d.clear()
print(d) # ==> {}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值