zoukankan      html  css  js  c++  java
  • Day5 Homework

    1,有如下变量(tu是个元祖),请实现要求的功能

        tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])

    a. 讲述元祖的特性

          元组被称为只读列表,即数据可以被查询,但不能被修改

    b. 请问tu变量中的第一个元素 “alex” 是否可被修改?

       不能被修改,因为是元组

    c. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”

       可以被修改,对应的list

    tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44])
    
    tu[1][2]['k2'].append('seven')
    print(tu)

    ('alex', [11, 22, {'k2': ['age', 'name', 'seven'], 'k1': 'v1', 'k3': (11, 22, 33)}, 44])

    d. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”

       不可以被修改,k3不可以被更改,对应的数据类型为元组

    2, 字典dic,dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}

        a. 请循环输出所有的key

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    
    for i in dic.keys():
        print(i)

    k3
    k2
    k1

        b. 请循环输出所有的value

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    
    for i in dic.values():
        print(i)

    [11, 22, 33]
    v1
    v2

        c. 请循环输出所有的key和value

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    
    for i in dic.items():
        print(i)

    ('k1', 'v1')
    ('k3', [11, 22, 33])
    ('k2', 'v2')

        d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    
    dic.setdefault('k4','v4')
    print(dic)

    {'k1': 'v1', 'k2': 'v2', 'k4': 'v4', 'k3': [11, 22, 33]}

        e. 请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    
    dic['k1']='alex'
    
    print(dic)

    {'k3': [11, 22, 33], 'k1': 'alex', 'k2': 'v2'}

        f. 请在k3对应的值中追加一个元素 44,输出修改后的字典

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    
    dic['k3'].append(44)
    print(dic)

    {'k1': 'v1', 'k3': [11, 22, 33, 44], 'k2': 'v2'}

        g. 请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    
    dic['k3'].insert(0,'18')
    print(dic)

    {'k1': 'v1', 'k3': ['18', 11, 22, 33], 'k2': 'v2'}
    3,av_catalog = {
        "欧美":{
            "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
            "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
            "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
            "x-art.com":["质量很高,真的很高","全部收费,屌丝请绕过"]
        },
        "日韩":{
            "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]
        },
        "大陆":{
            "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]

                   # 1,给此 ["很多免费的,世界最大的","质量一般"]列表第二个位置插入一个元素:'量很大'。
    li['欧美']['www.youporn.com'].insert(1,'量很大')
    print(li)

                   # 2,将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。

    av['欧美']['x-art.com'].pop(1)     remove(‘全部收费,屌丝请绕过’)

    print(av)
                   # 4,将此["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写。
    av['日韩']['tokyo-hot'][1] = av['日韩']['tokyo-hot'][1].upper()
    print(av)
                   # 5,给 '大陆' 对应的字典添加一个键值对 '1048' :['一天就封了']
    av['大陆']['1048'] ='一天就封了'
    print(av)
                   # 6,删除此"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]键值对。
    del av['欧美']['letmedothistoyou.com']
    print(av)
                   # 7,给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来'

     av['大陆']['1024'][0]= av['大陆']['1024'][0] '可以爬下来'
    print(av)
     
    4、有字符串"k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....}
    str = "k:1|k1:2|k2:3|k3:4"
    dic = {}
    li = str.split('|')
    
    for i in li:
        d = i.split(':')
        dic[d[0]] = int(d[1])
    print(dic)

    {'k1': 2, 'k2': 3, 'k': 1, 'k3': 4}

     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]
    l1 = []
    l2 = []
    dic ={}
    for i in li:
        if i > 66:
            l1.append(i)
        else:
            l2.append(i)
    dic.update({'k1':l1})
    dic.update({'k2':l2})
    print(dic)
    li= [11,22,33,44,55,66,77,88,99,90]
    dic = {'k1':[],'k2': []}
    for i in li:
        if i > 66:
            dic['k1'].append(i)
        else:
            dic['k2'].append(i)
    print(dic)

    {'k1': [77, 88, 99, 90], 'k2': [11, 22, 33, 44, 55, 66]}

    思考题 

    6、输出商品列表,用户输入序号,显示用户选中的商品

        商品 li = ["手机", "电脑", '鼠标垫', '游艇']

    要求:

    1:页面显示 序号 + 商品名称,如:1 手机 2 电脑

    2: 用户输入选择的商品序号,然后打印商品名称

    3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。

    4:用户输入Q或者q,退出程序。

    老师答案:
    li = ["手机", "电脑", '鼠标垫', '游艇'] while True: for i in li: print(li.index(i)+1,i) num = input('请输入商品序号:Q:q退出').strip() if num.isdigit(): num = int(num) if num <= len(li) and num >0: print(li[num-1]) else: print('超出序号范围,请重新输入') elif num.upper() == 'Q': break else: print('输入的有非法字符,请重新输入')
    正确答案:
    li = ["手机", "电脑", '鼠标垫', '游艇'] a = 0 for i in li: a +=1 Flag = True while True: s = input('请输入编码:Q/q'.strip()) if s.isdigit(): if int(s) <= len(li) and int(s) != 0: print(li[int(s)-1]) else: print('输入有误,请重新输入') else: if s.upper() == 'Q': break

    明日默写内容。

    三、复习题

    1)字典的增删改查。

    字典的增:1,有则覆盖,无则添加dic[添加的键] = 添加的值

          2,setdefault,无则增加,有则不变,dic.setdefault(添加的键,添加的值)

      删:1,pop有返回值删除

        2,clear清空

        3,del删除键值对,也可以删除字典

      改:1,直接修改,dic[添加的键] = 添加的值

        2,两个字典,要更新的字典.update(不变的字典)

      查:1,直接按键值查找dic[键值]

        2,用get直接查找dic.get(键值)

    2)过滤敏感字符代码的默写。

    复制代码
    li = ["苍老师","东京热","武藤兰","波多野结衣"]
    l1 = []
    comment = input("input")
    for i in li:
        comment = comment.replace(i,'*'*len(i))
    l1.append(comment)
    print(l1)
    复制代码
  • 相关阅读:
    HDU 5912 Fraction (模拟)
    CodeForces 722C Destroying Array (并查集)
    CodeForces 722B Verse Pattern (水题)
    CodeForces 722A Broken Clock (水题)
    CodeForces 723D Lakes in Berland (dfs搜索)
    CodeForces 723C Polycarp at the Radio (题意题+暴力)
    CodeForces 723B Text Document Analysis (水题模拟)
    CodeForces 723A The New Year: Meeting Friends (水题)
    hdu 1258
    hdu 2266 dfs+1258
  • 原文地址:https://www.cnblogs.com/kateli/p/8626752.html
Copyright © 2011-2022 走看看