zoukankan      html  css  js  c++  java
  • python 字典,字典嵌套,字典遍历

    字典(Dictionary)操作详解

    字典为键值的形式,一个键对应一个值

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。
    一、创建字典
    字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:

    1 dict = {'name': 'sunzhicheng', 'age': '20', 'sex': 'boy'}

    不可变类型:整型,字符串,元组 :字典只能用不可变类型来创建

    可变类型:列表,字典

    字典两大特点:

      1.键唯一

      2.无序

    列表的两种创建方法:

      1.第一种正常创建:

    dic = {'name':'sunzhicheng','age':20,'sex':'boy','admin':30}
    print(dic)

      2.第二种通过函数创建:每个键值对都用一个括号表示,多个键值对之间用逗号,表示,键值对之间也是用逗号,表示的

    dic1 = dict((('name','sunzhicheng'),('age',20),('sex','boy'),('admin',20)))
    print(dic1)

    字典的操作:

      1.增:通过变量直接增加键值,通过dic增加了两个键值对:'age'= 18,'sex' = 'boy'

    dic = {'name':'sunzhicheng'}
    dic['age'] = 18
    dic['sex'] = 'boy'
    print(dic)

      1.1增 setdefault方法:如果键存在不进行修改,如果键不存在,进行增加该条键值对

    dic = {'name':'sunzhicheng'}
    dic['age'] = 18
    dic['sex'] = 'boy'
    print(dic)
    #键存在,不进行修改,并返回字典中的键对应的值。
    ret = dic.setdefault('age',30)
    print(dic)
    print(ret)
    # 键不存在,在字典中增加新的键值对,并返回键的值
    ret1 = dic.setdefault('book',30)
    print(dic)
    print(ret1)
    执行结果:

       2.查:通过字典的键去查询要查询的内容

    ic2 = {'name':'sunzhicheng','age':20,'sex':'boy'}
    
    print(dic2['name'])
    #查询字典里有哪些键keys 这个类型需要转换成list之后才能使用
    print(dic2.keys(),"没转换的dict_keys类型") # 查出来的键都纯在类型是dict_keys
    
    print(list(dic2.keys()),"转换后的列表类型")
    print(list(dic2.values()),'取到字典里所有的值')
    print(list(dic2.items()),'直接获取到键值对,已元组的类型拿到')

      3.改: 直接对这个值进行修改

    dic3 = {'name':'sunzhicheng','age':20,'sex':'boy'}
    dic3['name'] = 'zhicheng'
    print(dic3,'修改键为name的值')

      3.1 update将另一个字典的内容付给dic3字典

    dic4 = {'1':'1111','2':'2222','name':'333'}
    dic3.update(dic4) # 将dic4里的内容添加到dic3里边,如果dic3里有这个键就会替换之前的内容,例如键name这个dic3里有这个键dic4的name就会替换name之前的值重,将新值333给键name
    print(dic3,'dic4的增加给了dic3')
    print(dic4,'dic4没有变化')

      4.删: del,pop,popitem,clear

    dic5 = {'name':'sunzhicheng','age':20,'sex':'boy','1':'1111','2':'2222','3':'333333'}
    del dic5['age'] #删除字典中指定键值对
    print(dic5)
    
    red = dic5.pop('sex')   #删除字典中指定键值对并返回值
    print(dic5)
    print(red)  #查看返回的内容
    
    dic5.popitem()  #随机删除 
    print(dic5,'随机删除了')
    
    dic5.clear()    #清空字典,字段存在,但是内容没有了
    print(dic5)

       5.字典嵌套

    av_catalog = {
        '欧美':{
            'www.youporn.com':['很多免费的,世界最大','质量一般'],
            'www.pornhub.com':['很多免费的,很大','质量比youpirn高点'],
            'letmedothistoyou.com':['多事自拍,高质量图片很多','资源不多,更新慢'],
            'x-art.com':['质量很高,真的很高','全部收费,屌丝请绕行']
        },
        '日韩':{
            'tokyo':['质量很高,个人已经不喜欢日韩范了','听说是收费的']
        },
        '大陆':{
            '1024':['全部免费,好人一生平安','服务器在国外,慢']
        }
    }
    av_catalog['欧美']['www.youporn.com'][1] = '高高清清' #修改指定的值,首先找到大的字典里的键,然后在找到资格字典里套的这个字典的键,然后在找到要修改的这个内容在列表的位置。
    print(av_catalog)

      6.字典排序:字典排序根据,键来排序

    dic6 = {2:333,4:222,3:111}
    print(sorted(dic6.keys()))  #按照键排序
    print(sorted(dic6.values()))    #按照值排序
    print(sorted(dic6.items())) #按照键排序

      7.字典遍历

    #字典遍历的两种方式
    # for i,v in av_catalog['欧美'].items():  #打印键及键下的值
    #     print(i,v)
    for i in av_catalog:
        print(i,av_catalog[i])
    #查:通过字典的键去查询要查询的内容
  • 相关阅读:
    css 旋转
    html 旋转
    链表和数组的区别
    hashmap
    【java开发系列】—— 自定义注解
    java不确定参数个数方法例子
    mysql 删除
    linux下常用命令
    php的几种算法(转载)
    数据容器
  • 原文地址:https://www.cnblogs.com/szc113/p/9799334.html
Copyright © 2011-2022 走看看