Python之字典

前面两期介绍了一种Python的集合数据类型:列表(list)和元组(tuple),本期将继续介绍字典(dictionary)。

01

什么是字典(dictionary)?

字典(dictionary)与列表(list)均是Python中可灵活应用和处理的数据结构类型。字典由“键:值(key:value)”组成,使用大括号“{}”标识。字典中的键(value)是唯一不可重复的。如class = {"Tim":1,"Hzeros":2,"Nana":3}。

字典与列表的区别在于:列表是有序的,每个值有一个索引,并可以通过索引进行修改、删除等操作;字典是无序的对象集合。

02

如何创建字典?

字典中的key通常是唯一的,若存在相同的key,后面的key会替换前面的key,但value并不需要唯一。key和value中间以冒号:隔开,不同的key:value对之间用逗号隔开,整个字典是由大括号{}括起来的。

如:

classes1 = {"Tim":1,"Hzeros":2,"Nana":3}

也可以使用dict函数创建字典:

classes2 = dict(Jack=4,Nacy=5)

当然,字典的值可以是一个列表(list):

classes3 = {"Jack":[6,7,8],"Cycy":[9,10]}

print (classes3)

type(classes3)

输出为:

{'Cycy': [9, 10], 'Jack': [6, 7, 8]}

dict

ps:键必须不可变,所以可以用数字、字符串或元组作为键,但是不能用列表。

03

如何访问字典中的值?

访问字典中的值,只需按照字典名["键名"]的格式即可访问。如以上classes1和classes3为例:

print ("Hzeors的号码为:", classes1["Hzeros"])

print ("Jack有多个号码,分别是:", classes3["Jack"])

输出为:

Hzeors的号码为: 2

Jack有多个号码,分别是: [6, 7, 8]

NEXT

如果访问的字典里没有对应的键,就会报错!

print (classes1["Tom"])

Traceback(most recent call last):

File "", line 1, in

print (classes1["Tom"])

KeyError:'Tom'

NEXT

当然,可以使用in语句判断键是否存在于字典中,或者使用not in语句判断键是否不存在于字典中:

"Tim" in classes1

"Tim" not in classes1

"Tom" in classes1

"Tom" not in classes1

输出为:

True

False

False

True

Python 2.2 版本以前可以用 字典名.has_key("键名")判断,但官方不推荐此方法,且2.2后的版本已删除此方法。

04

如何更新字典?

增加键-值(key-value)对

直接使用字典名["新键名"] = 值即可增加键-值对:

classes1["Jerry"] = 4

print (classes1)

输出为:

{'Hzeros': 2, 'Jerry': 4, 'Tim': 1, 'Nana': 3}

更新、修改键-值(key-value)对

更新或修改键-值对,只需指定指定字典中的键名,直接赋予新值即可:

classes1["Jerry"] = 11

print (classes1)

输出为:

{'Hzeros': 2, 'Jerry': 11, 'Tim': 1, 'Nana': 3}

删除键-值(key-value)对

可使用del语句删除指定的键值对,也可使用字典名.clear()方法情况字典内所有内容:

classes3 = {"Jack":[6,7,8],"Cycy":[9,10]}

print (classes3)

del classes3["Jack"]

print (classes3)

classes3.clear()

print (classes3)

输出为:

{'Cycy': [9, 10], 'Jack': [6, 7, 8]}

{'Cycy': [9, 10]}

{}

当然,del语句还可以直接删除整个字典,在不指定键名的情况下:

del classes3

print(classes3)

删除后,classes3字典不存在:

Traceback(most recent call last):

File"", line 1, in

print(classes3)

NameError:name 'classes3' is not defined

05

字典的内置函数

06

字典的常用方法

07

历遍字典

历遍字典是指将字典的内容逐个输出,可通过for循环实现。

遍历字典的key(键)

输入为:

classes1 = {"Tim":1,"Hzeros":2,"Nana":3}

type(classes1)

for key in classes1.keys():

print(key)

输出为:

dict

Tim

Nana

Hzeros

遍历字典的value(值)

输入为:

for value in classes1.values():

print(value)

输出为:

1

3

2

遍历字典的key-value(键-值对)

输入为:

for key,value in classes1.items():

print(key,value)

输出为:

Tim 1

Nana 3

Hzeros 2

微信ID:xiaohulearning

谁的征途,不是星辰湖海。欢迎关注!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180906G0R19W00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券