• day05作业---字典


    # 字典找位置  用键, 列表、元组找位置 用索引
    '''
    1.有如下变量(tu是个元祖),请实现要求的功能
    tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
    a. 讲述元祖的特性
    b. 请问tu变量中的第⼀个元素 "alex" 是否可被修改?
    c. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在
    其中添加⼀个元素 "Seven"
    d. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其
    中添加⼀个元素 "Seven" 答:不能被修改 元组(1,2,3)
    '''
    #1  元组
    print('元组的特性是不可修改的数据类型,用小括号表示,可以存储多种类型')
    tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
    print(type(tu))
    # tu[0] = '1'  #'tuple' object does not support item assignment
    # print(tu)
    tu[1][2]['k2'] = 'Seven'
    print(tu[1][2]['k2'])
    print(type(tu[1][2]['k2']))
    print(tu)          #都是键 的位置  可以改为 变量
    # tu[1][2]['k3'] = (11,22,33,'Seven')   # 添加
    # tu[1][2].setdefault('k3','')
    print(tu[1][2]['k3'])
    print(tu)
    # tu[1][2][]
    View Code
    '''
    2.字典dic,dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    1. 请循环输出所有的key
    2. 请循环输出所有的value
    c. 请循环输出所有的key和value
    d. 请在字典中添加⼀个键值对,"k4": "v4",输出添加后的字典
    e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
    f. 请在k3对应的值中追加⼀个元素 44,输出修改后的字典
    g. 请在k3对应的值的第 1 个位置插⼊个元素 18,输出修改后的字典'''
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    for key in dic.keys():
        print(key)
    for value in dic.values():
        print(value)
    for key,value in dic.items():
        print(key,": ",value)
    dic.setdefault('k4','v4')
    print(dic)
    dic['k1'] = 'alex'
    print(dic)
    # 对列表进行操作
    dic['k3'].append(44)
    print(dic)
    dic['k3'].insert(0,18)
    print(dic)
    View Code'''
    3. a,给此 ["很多免费的,世界最⼤的","质量⼀般"]列表第⼆个位置插⼊⼀个 元素:'量很
    ⼤'。
    b,将此 ["质量很⾼,真的很⾼","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过"
    删除。
    c,将此["质量怎样不清楚,个⼈已经不喜欢⽇韩范了","verygood"]列表的
    "verygood"全部 变成⼤写。
    d,给 '⼤陆' 对应的字典添加⼀个键值对 '1048' :['⼀天就封了']
    e,"oldboy.com": ["多是⾃拍,⾼质量图⽚很多","资源不多,更新慢"]
    f,给此["全部免费,真好,好⼈⼀⽣平安","服务器在国外,慢"]列表的第⼀个元素,加上
    ⼀句话:'可以爬下来''' 答:
                  av_catalog = {

                  '欧美':{}
                   '大陆':{}
                    '日韩':{}
                  }
    f.字符串 拼接 位置 = 位置(其实是一个数据类型) + ‘可以爬下来’
    av_catalog = {
    "欧美":{
    "www.太⽩.com": ["很多免费的,世界最⼤的","质量⼀般"],
    "www.alex.com": ["很多免费的,也很⼤","质量⽐yourporn⾼点"],
    "oldboy.com": ["多是⾃拍,⾼质量图⽚很多","资源不多,更新慢"],
    "hao222.com":["质量很⾼,真的很⾼","全部收费,屌丝请绕过"]
    },
        "⽇韩":{
    "tokyo-hot":["质量怎样不清楚,个⼈已经不喜欢⽇韩范了","verygood"]
    },
        "⼤陆":{
    "1024":["全部免费,真好,好⼈⼀⽣平安","服务器在国外,慢"]
    }
    }
    av_catalog['欧美']["www.太⽩.com"].insert(1,'量很⼤')
    print(av_catalog)
    # av_catalog['欧美'].popitem("hao222.com")  # 方法删除的是键值对
    av_catalog['欧美']["hao222.com"].remove('全部收费,屌丝请绕过')   # 根据元素的只能是 remove
    # del av_catalog['欧美']["hao222.com"][0]                   #也可以根据索引 pop  和 del
    av_catalog['欧美']["hao222.com"].pop(0)                   #也可以根据索引 pop  和 del
                                                            # 格式一点都不一样。
    print(av_catalog)
    
    print(av_catalog['⽇韩']["tokyo-hot"][1].title())   # 该列表  用 序列【1】 而不是 元素
    # print(av_catalog)
    av_catalog['⼤陆'].setdefault('1028',['⼀天就封了'])
    print(av_catalog)
    av_catalog['⼤陆']['1024'][0]='全部免费,真好,好⼈⼀⽣平安,可以爬下来'
    print(av_catalog)
    View Code
    '''
    4.有字符串"k: 1|k1 :2|k2:3 |k3 :4" 处理成字典 {'k':1,'k1':2....} ( '''(升级题 面试题)
    分别赋值:
    kay , value = item ----------> k1 1
    s = "k: 1|k1 :2|k2:3 |k3 :4"
    ss = s.split('|')  #  ['k: 1', 'k1 :2', 'k2:3 ', 'k3 :4']
    # ss = s.split(':')
    print(ss)
    dic={}
    for flag in ss:
        s1 = flag.split(':')
        # print(s1)
        dic.setdefault(s1[0])  # 添加键
        dic[s1[0]] =s1[1]       #添加值
        # print(flag)
    print(dic)
    #{'k': ' 1', 'k1 ': '2', 'k2': '3 ', 'k3 ': '4'}
    View Code
    '''
    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]
    dic = {'k1':[],'k2':[]}
    for l in li:
        # print(l)
        # print(type(l))
        if l > 66:
           dic['k1'].append(l)
        if l < 66:
            dic['k2'].append(l)
    print(dic)
    View Code
    '''
    6.输出商品列表,⽤户输⼊序号,显示⽤户选中的商品
    商品列表:
    goods = [{"name": "电脑", "price": 1999},
    {"name": "⿏标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美⼥", "price": 998}, ]
    要求:
    1:⻚⾯显示 序号 + 商品名称 + 商品价格,如:
    1 电脑 1999
    2 ⿏标 10

    2:⽤户输⼊选择的商品序号,然后打印商品名称及商品价格
    3:如果⽤户输⼊的商品序号有误,则提示输⼊有误,并重新输⼊。 # 输入有英文 别的 没做处理
    4:⽤户输⼊Q或者q,退出程序。'''
    goods = [{"name": "电脑", "price": 1999},
    {"name": "⿏标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美⼥", "price": 998}, ]
    i = 0
    for i in range(len(goods)):
        i+=1
        print(i,goods[i-1]['name'],goods[i-1]['price'])
    while True:
        number = input('请输入商品序号:(输入q/Q退出)').strip()
        if number == 'q':
            quit()
        else:
            number = int(number)
            # print(i)
            if number == 1:
                print(goods[0]['name'],goods[0]['price'])
            elif number == 2:
                print(goods[1]['name'],goods[1]['price'])
            elif number == 3:
                print(goods[2]['name'],goods[2]['price'])
            elif number == 4:
                print(goods[3]['name'],goods[3]['price'])
            else:
                print('输入不符合规则!!!!!!')
    View Code

     流畅的代码(老师讲)

    goods = [{"name": "电脑", "price": 1999},
    {"name": "⿏标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美⼥", "price": 998}, ]
    i = 0
    for i in range(len(goods)):
        i+=1
        print(i,goods[i-1]['name'],goods[i-1]['price'])
    # while True:
    while 1:  #  while  1  比while true 执行快
        number = input('请输入商品序号:(输入q/Q退出)').strip()
        if number.isdigit():  #考虑英文和其它字符
            number = int(number)
        if 0 < number <=len(goods):       # 厉害了  不是指定值 而是根据程序
                print(goods[number-1]['name'], goods[number-1]['price'])
            else:
                print('你输入的超出范围,请重新输入')
    
        elif number.lower() == 'q':  #怎么没考虑  大写 没加 lower
            quit()
        else:
            print('输入不符合规则!!!!!!')
    View Code
  • 相关阅读:
    红蓝对抗之Windows内网渗透
    [框架漏洞]Thinkphp系列漏洞【截至2020-07-20】
    xss
    OWASP TOP 10 详解
    关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent()
    用C#实现的几种常用数据校验方法整理(CRC校验;LRC校验;BCC校验;累加和校验)
    批处理(.bat)简单应用实例
    线状地物图斑化全流程作业(使用ArcMap软件)
    VS Code Remote配置
    二分查找
  • 原文地址:https://www.cnblogs.com/Doner/p/10486005.html
Copyright © 2020-2023  润新知