python--字典
#字典是另一种可变容器模型,且可存储任意类型对象。
#字典是无序的对象集合
#字典中的元素是通过键来存取的
#不可变类型:数字、字符串、元组
#可变类型:列表、字典
#键是可转换为哈希值的不可变类型
#键必须是唯一的,但值则不必。
#值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
#字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
dict1 = {'name':'liangchen','age':21,'hobby':'coding'} #name、age等是键,liangchen、21是值
dict2 = {'height','170cm','weight','56Kg','like_color','black'}
dict3 = dict((('height','170cm'),('weight','56Kg'),('like_color','black'))) #第二种方法添加字典
print(dict1)
print(dict2)
查字典
dict1['name']
print(dict1['name'])
#输出:liangchen
print(dict1.keys()) #输出字典dict1的所有键
print(dict1.values()) #输出字典dict1的所有值
print(dict1.items()) #输出字典dict1中的所有键值对
改字典元素
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
dict1 = {'name':'liangchen','age':21,'hobby':'coding'}
dict['age'] = 22 # age的值变为22
dict1 = {'name':'liangchen','age':21,'hobby':'coding'}
dict1.setdefault('age',22) #是一个返回值,如果字典dict1中有键age则返回21
dict1.setdefault('school':'良辰教程') #字典dict1中无键school,所以添加一个元素
字典dict1变为:dict1 = {'name':'liangchen','age':21,'hobby':'coding','school':'良辰教程'}
dict2 = {'height','170cm','weight','56Kg','like_color','black'}
dict1.update(dict2) #把dict2中的键值对加入到dict1,如果有键相同,则该键相应的值改为dict2中该键的值
字典添加元素
dict1 = {'name':'liangchen','age':21,'hobby':'coding'}
dict['School'] = "良辰教程" # 添加信息
字典dict变为:dict1 = {'name':'liangchen','age':21,'hobby':'coding','school':'良辰教程'}
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:
dict1 = {'name':'liangchen','age':21,'hobby':'coding'}
dict1.pop('age') #删除字典中指定键值对,并返回该键对应的值
dict1.popitem() #随机删除某组键值对,并以元组方式返回值
del dict1['name'] # 删除键 'name'
dict1.clear() # 清空字典
del dict1 # 删除字典
字典的其他操作
dict4=dict.fromkeys(['host1','host2','host3'],'test')
print(dict4) #字典dict4={'host3': 'test', 'host1': 'test', 'host2': 'test'}
# dict4'host2']='abc' #键为host2的值改为abc
字典嵌套
av_catalog = { "欧美":{ "www.youporn.com": ["很多免费的,世界最大的","质量一般"], "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"] }, "日韩":{ "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"] }, "大陆":{ "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"] } }
字典的遍历
#字典的遍历 dict1 = {'name':'liangchen','age':21,'hobby':'coding'} #第一种方法,也是比较实用的方法 for i in dict1: print(i,dict1[i]) #第二种遍历 for i,v in dict1.items(): print(i,v) 都输出为: name liangchen age 21 hobby coding
字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
1 dict = {'Name': 'liangchen', 'Age': 7, 'Name': '小良辰'}
2 print ("dict['Name']: ", dict['Name'])
#输出结果为:
# dict['Name']:小良辰