以下,继续来看字典其他的方法。
keys方法
将字典中的键以列表形式返回。使用示例:
# keys 方法
PeoplePhone =
{
"alice" :
{
"phone" : "1234" ,
"Addr" : "beijing"
},
"bob" :
{
"phone" : "2345" ,
"Addr" : "shanghai"
},
"ceil" :
{
"phone" : "3456" ,
"Addr" : "shenzhen"
}
}
print (PeoplePhone.keys())
运行结果:
结果:
dict_keys(['alice', 'ceil', bob'])
如上代码,定义一个名词为PeoplePhone的字典,有3个key,分别为alice,bob,和ceil,这三个项同时又是一个字典,先不用管内容是什么,试试用keys方法,看看结果。如上,打印keys结果,可以看到结果:[‘alice’, ‘ceil’, bob’]三个键都已经包含在其中。代码示例图:
从实际代码可以看到,打印了names字典的键列表。
pop方法
pop方法,能够获取给定键的值,并将项从字典中删除。如何使用呢,看下面的演示代码:
# pop 方法
student_info = {"Alice" :"42" ,"Bob" :"45"}
student_info.pop("Alice")
print(student_info)
结果:
{'Bob': '45'}
如上,示例代码,定义一个student_info字典,然后调用其pop方法,制定键为“Alice”,最后打印结果。可以看到,键为Alice的项已经从字典中移除。结果为:{‘Bob’: ‘45’}
在字典操作的过程,还有一个popitem,与pop操作类似,但不需要参数,因为它能够从字典中随机弹出一个键值对。示例:
# popitem
student_info = {"Alice" :"42" ,"Bob" :"45"}
student_info.popitem()
print(student_info)
结果:
{'Bob': '45'}
如上代码,调用popitem没有输入参数,从结果来看,已经移除了一个键值对。
如上实例代码,定义字典names,然后调用popitem,打印结果,可以看到bela的键被移除。大家可以多运行几次,看看popitem的随机效果。
setdefault方法
setdefault 方法:
-
与get 类似,能够获取给定键相关联的值;
-
还能在字典中不含有给定键的情况下设相应值。
使用示例:
d = {}
d.setdefault("name", "NA" )
print (d)
d[ "name" ] = "Bob"
print (d)
d.setdefault("name" , "NA")
print (d)
结果:
{'name': 'NA'}
{'name': 'Bob'}
{'name': 'Bob'}
以上示例,首先创建了一个空的字典,然后通过调用setdefault为键name设置了默认值为“NA”,此时打印结果:{‘name’: ‘NA’},可以看到已经有name键了,值为“NA”。当我们对name进行赋值为Bob,之后再次调用setdefault,可以看到字典已经没有变化,这就说明了setdefault方法是设置默认值的,只有当前键没有值的时候,才用默认值填充。
update方法
update 方法利用一个字典更新另一个字典。使用示例:
# update 方法
student_info = {"Alice" :"42" ,"Bob" :"45"}
bob_info = {"Bob" :"100" }
student_info.update(bob_info)
print(student_info)
打印结果:
结果:
{'Bob': '100', Alice': 42'}
以上代码,首先定义的字典student_info,其中有两个元素:{“Alice” :“42” ,“Bob” :“45”}。通过bob_info = {“Bob” :“100” }字典去更新student_info,最后打印结果,可以看到Bob的值已经由原来的45更新到了100。实例:
如上实例,我们将bob进行更新,更新后,bob的值由3333变成了999。需要注意的是,在更新tom的时候,原来的字典里面并没有tom,那么,这个时候结果是什么呢?如上,这个时候可以把tom在原始字典中看做是空的,那么更新之后,就相当于添加了一个新的键值对!