python第四周小测验答案_马哥博客作业第四周

2006018-20200413134139590-465730898.png

返回key对应的值value

key不存在抛出KeyError异常

get(key[,default])

d = {'a' : 200, 'b' : 300, 'c' : 400}

print(d.get('d', 333))

print(d.get('a'))

print(d)

2006018-20200413134303463-1713608454.png

返回key对应的值value

key不存在返回缺省值,如果没有设置缺省值就返回None

setdefault(key[,default])

d = {'a' : 200, 'b' : 300, 'c' : 400}

print(d.setdefault('d', 333))

print(d.setdefault('a'))

print(d)

2006018-20200413134345144-1086976434.png

返回key对应的值value

key不存在,添加kv对,value设置为default,并返回default,如果default没有设置,缺省为None

新增和修改

d[key]=value

将key对应的值修改为value

key不存在添加新的kv对

update([other])->None

使用另一个字典的kv对更新本字典

key不存在,就添加

key存在,覆盖已经存在的key对应的值

就地修改

d={}

d['a']=1

print(d)

d.update(red=1)

print(d)

d.update({'red':3})

print(d)

2006018-20200413134451150-664759561.png

删除

pop(key[,default])

d = {'a' : 200, 'b' : 300, 'c' : 400}

d.pop('a')

2006018-20200413134510673-1678113943.png

key存在,移除它,并返回它的value

key不存在,返回给定的default

default未设置,key不存在则抛出KeyError异常

popitem()

d = {'a' : 200, 'b' : 300, 'c' : 400}

d.popitem()

2006018-20200413134540702-808021074.png

移除并返回一个任意的键值对

字典为empty,抛出KeyError异常

clear()

清空字典

遍历

1、遍历Key

d = {'a' : 200, 'b' : 300, 'c' : 400}

for k in d:

print(k)

for k in d.keys():

print(k)

2006018-20200413134633799-1903371606.png

2、遍历Value

d = {'a' : 200, 'b' : 300, 'c' : 400}

for v in d.values():

print(v)

for k in d.keys():

print(d[k])

print(d.get(k))

2006018-20200413134708261-2035456052.png

3、遍历Item

d = {'a' : 200, 'b' : 300, 'c' : 400}

for item in d.items():

print(item)

print(item[0],item[1])

for k,v in d.items():

print(k,v)

2006018-20200413134738437-250779794.png

d = {'a' : 200, 'b' : 300, 'c' : 400}

for k, _ in d.items():

print(k)

for _, v in d.items():

print(v)

2006018-20200413134807127-356400035.png

Python3中,keys、values、items方法返回一个类似一个生成器的可迭代对象

Dictionaryview对象,可以使用len()、iter()、in操作

字典的entry的动态的视图,字典变化,视图将反映出这些变化

keys返回一个类set对象,也就是可以看做一个set集合。如果values都可以hash,那么items也可以看做是类set对象

Python2中,上面的方法会返回一个新的列表,立即占据新的内存空间。所以Python2建议使用

iterkeys、itervalues、iteritems版本,返回一个迭代器,而不是返回一个copy

遍历与删除

#错误的做法

d = dict(a = 1, b = 2, c = 3)

for k, v in d.items():

print(d.pop(k))

在使用keys、values、items方法遍历的时候,不可以改变字典的size

while len(d):

print(d.popitem())

上面的while循环虽然可以移除字典元素,但是很少使用,不如直接clear。

#for循环正确删除

d = dict(a = 1, b = 2, c = 3)

keys = []

for k, v in d.items():

keys.append(k)

for k in keys:

d.pop(k)

key

字典的key和set的元素要求一致

set的元素可以就是看做key,set可以看做dict的简化版

hashable可哈希才可以作为key,可以使用hash()测试

使用key访问,就如同列表使用index访问一样,时间复杂度都是O(1),这也是最好的访问元素的方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值