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']:小良辰

posted @ 2019-08-12 21:15  BruceTyler  阅读(162)  评论(0编辑  收藏  举报