字典方法

以下,继续来看字典其他的方法。

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在原始字典中看做是空的,那么更新之后,就相当于添加了一个新的键值对!

IT赶路人

专注IT知识分享