zoukankan      html  css  js  c++  java
  • 字典的学习

    主要内容
    1. 字典
    dict 用{}来表示 键值对数据 {key:value} 唯一性
    键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键
    值 没有任何限制
    2. 增删改查
    dic[key] = value
    dic.setdefault(key,value) 如果键在字典中存在不进行任何操作,否则就添加
    可以通过key查询,没有这个key返回None
    ====================================================================
    pop(key) 有返回值 返回的是被删除value
    del dic[key]
    popitem() 随机删除
    clear() 清空字典
    ======================================================================
    dic[key] = value
    dic.update(字典)

    =======================================================================
    get(key)
    dic[key]
    for 循环
    setdefault(key)
    =======================================================================
    3.字典的其他操作:
    keys 获取到所有的键存在一个高仿的列表中
    values 获取到所有的值存在一个高仿的列表中
    items 获取到所有的键值对已元祖的形式存在一个高仿的列表中
    解构:
    a,b = 1, 2
    a,b = (1,2)
    a,b = [1,2]
    4. 字典的嵌套:
     dic = {
                'name':'汪峰',
                'age':43,
                'wife':{
                    'name':'国际章',
                    'age':39,
                    'salary':100000
                },
                'baby':[
                    {'name':'熊大','age':18},
                    {'name':'熊二','age':15},
                ]
    
            }
    
            dic['baby'][0]['age'] = 19
    
            print(dic)
    

      

    习题

    # tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44])
    # a. 讲述元组的特性
    # 不可变的列表.又被成为只读列表.
    # 里面可以放任何数据类型的数据,查询可以.循环也可以.切片也可以.但就是不能改.
    
    # b. 请问tu变量中的第一个元素 "alex" 是否可被修改?
    # 不可以,元组查询可以.循环也可以.切片也可以.但就是不能改.
    # c. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"
    # print(type(tu[1][2]["k2"]))             #<class 'list'>
    # 可修改   tu[1][2]["k2"].append("Seven")
    
    # d. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"
    # print(type(tu[1][2]["k3"]))         # <class 'tuple'> 元组不可以修改
    # dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
    # a. 请循环输出所有的key
    # for el in dic:
    #     print(el)           # k1 k2  k3
    
    # b. 请循环输出所有的value
    # print(dic.values())
    
    # c. 请循环输出所有的key和value
    # for key, value in dic.items():
    #     print(key, value)
    
    # d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
    # dic.setdefault("k4", "v4")
    # print(dic)
    
    # dic['k4'] = "v4"
    # print(dic)
    # e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
    # dic1 = {"k1": "alex"}
    # dic.update(dic1)
    # print(dic)
    
    # dic['k1'] = "alex"
    # print(dic)
    # f. 请在k3对应的值中追加一个元素 44,输出修改后的字典
    # dic["k3"].append(44)
    # print(dic)
    
    # g. 请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典
    # dic["k3"].insert(0, 18)
    # print(dic)
    
    
    # 3
    # av_catalog = {
    #     "欧美": {
    #         "www.youporn.com": ["很多免费的,世界最大的", "质量一般"],
    #         "www.pornhub.com": ["很多免费的,也很大", "质量比yourporn高点"],
    #         "letmedothistoyou.com": ["多是自拍,高质量图片很多", "资源不多,更新慢"],
    #         "x-art.com": ["质量很高,真的很高", "全部收费,屌丝请绕过"]
    #     },
    #     "日韩": {
    #         "tokyo-hot": ["质量怎样不清楚,个人已经不喜欢日韩范了", "verygood"]
    #     },
    #     "大陆": {
    #         "1024": ["全部免费,真好,好人一生平安", "服务器在国外,慢"]
    #     }
    # }
    # a,给此 ["很多免费的,世界最大的","质量一般"]列表第二个位置插入一个  元素:'量很大'。
    # av_catalog["欧美"]["www.youporn.com"].insert(1, "量很大")
    # print(av_catalog)
    
    # b,将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。
    # del(av_catalog["欧美"]["x-art.com"][1])
    # print(av_catalog)
    
    # c,在此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表中添加"金老板最喜欢这个"。
    # (av_catalog["欧美"]["x-art.com"]).append("金老板最喜欢这个.")
    # print(av_catalog)
    
    # d,将此["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写。
    # av_catalog["日韩"]["tokyo-hot"][1] = av_catalog["日韩"]["tokyo-hot"][1].upper()
    # print(av_catalog)
    
    # e,给'大陆' 对应的字典添加一个键值对 '1048' :['一天就封了']
    # av_catalog["大陆"].setdefault("1048", "一天就疯了")
    # print(av_catalog)
    
    # f,删除此"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]键值对。
    # del (av_catalog["欧美"]["letmedothistoyou.com"])
    # print(av_catalog)
    
    # g,给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来'
    # av_catalog["大陆"]["1024"].insert(0, "可以爬下来")
    # # print(av_catalog)
    
    
    # 4
    # 有字符串 "k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....}  (升级题)
    # str1 = "k:1|k1:2|k2:3|k3:4"
    # dic = {}
    # str2 = str1.split("|")
    # for c in str2:
    #     str3, str4 = c.split(":")
    #     dic[str3] = int(str4)
    # print(dic)
    # 5
    # 有如下值li= [11,22,33,44,55,66,77,88,99,90],
    # 将所有大于 66 的值保存至字典的第一个key中,
    # 将小于 66 的值保存至第二个key的值中。
    # 即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
    # li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    # k1 = []
    # k2 = []
    # dic = {}
    # for el in range(len(li)):
    #     if (li[el]) < 66:
    #         k1.append((li[el]))
    #     elif (li[el]) > 66:
    #         k2.append((li[el]))
    #     dic['k1'] = k1
    #     dic['k2'] = k2
    # print(dic)
    # 6
    # goods = [{"name": "电脑", "price": 1999},
    #          {"name": "鼠标", "price": 10},
    #          {"name": "游艇", "price": 20},
    #          {"name": "美女", "price": 998}]
    # # 1
    # a = 0
    # count = 1
    # while count < 5:
    #     print("%d, %s, %s" % (count, goods[a]["name"], goods[a]["price"]))
    #     a += 1
    #     count += 1
    # 2 3 4
    # while 1:
    #     yonghu = input("请输入序号(1-4)(输入Q退出):")
    #     if yonghu =="q"or yonghu == "Q":
    #         break
    #     elif int(yonghu) in [1, 2, 3, 4]:
    #         n = int(yonghu)-1
    #         a, b = goods[n].values()
    #         print(a, b)
    #     else:
    #         print("输入有误,请重新输入")
    不要被眼前的迷雾遮住了双眼.
  • 相关阅读:
    Nginx 日志切割-定时(附数据库数据备份)
    安装Nginx
    系统自适应限流
    黑名名单控制-sentinel
    热点参数的流量控制
    流量控制文档说明
    在Linux中输入命令时打错并按了enter
    配置maven环境
    项目层次展示
    寻找cmd的管理员运行
  • 原文地址:https://www.cnblogs.com/lingcai/p/9403736.html
Copyright © 2011-2022 走看看