zoukankan      html  css  js  c++  java
  • day05--课后练习-字典

    !/usr/bin/env python
    _*_coding:utf-8_*_
    @Author : Wenjie

    1,有如下变量(tu是个元祖),请实现要求的功能
    tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44])
    a.讲述元祖的特性
    1、只读列表,由()组成,用,隔开
    2、不可变,元祖内部第一层元素的内存地址不可变
    3、如果只有一个元素,末尾加逗号

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

    c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"
    k2 对应的是一个列表,可以被修改
    tu[1][2]["k2"].append("Seven")
    print(tu)

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

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

    a.请循环输出所有的key
    1、for k in dic.keys():
    print(k)
    2、for k in dic:
    print(k)

    b.请循环输出所有的value
    1、for v in dic.values():
    print(v)
    2、for k in dic:
    print(dic[k])

    c.请循环输出所有的key和value
    for k, v in dic.items():
    print(k,v)

    for k in dic:
    print(k,dic[k])

    d.请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
    1、 dic["k4"] = "v4"
    print(dic)
    2、res = dic.setdefault("k4","v4")
    print(dic,res)

    e.请在修改字典中"k1"对应的值为"alex",输出修改后的字典
    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, 将此["质量很高,真的很高", "全部收费,屌丝请绕过"]列表的"全部收费,屌丝请绕过"删除。
    av_catalog["欧美"]["x-art.com"].remove("全部收费,屌丝请绕过")
    print(av_catalog)

    c, 在此["质量很高,真的很高", "全部收费,屌丝请绕过"]列表中添加"金老板最喜欢这个"。
    av_catalog["欧美"]["x-art.com"].append("金老板最喜欢这个")

    d, 将此["质量怎样不清楚,个人已经不喜欢日韩范了", "verygood"]列表的"verygood"全部变成大写。
    av_catalog["日韩"]["tokyo-hot"][1] = av_catalog["日韩"]["tokyo-hot"][1].upper()
    # 更改字符串需要重新赋值
    print(av_catalog)

    e, 给'大陆'对应的字典添加一个键值对'1048': ['一天就封了']
    av_catalog["大陆"]['1048'] = ['一天就封了']
    print(av_catalog)

    f, 删除此"letmedothistoyou.com": ["多是自拍,高质量图片很多", "资源不多,更新慢"]键值对。
    del av_catalog["欧美"]["letmedothistoyou.com"]
    av_catalog["欧美"].pop("letmedothistoyou.com")
    print(av_catalog)

    g, 给此["全部免费,真好,好人一生平安", "服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来'
    av_catalog["大陆"]["1024"][0] = "可以爬下来,全部免费,真好,好人一生平安"
    print(av_catalog)

    4、有字符串"k:1|k1:2|k2:3|k3:4"处理成字典{'k': 1, 'k1': 2....}(升级题)
    str = "k:1|k1:2|k2:3|k3:4"
    str_list = str.split("|")
    dic = dict()
    for i in str_list:
    k,v = el.split(":")
    dic[k] = int(v)
    print(dic)
    解包在元组列表上有效

    5、元素分类
    有如下值li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90],将所有大于66的值保存至字典的第一个key中,将小于
    66的值保存至第二个key的值中。
    即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}

    dic = {"k1":[],"k2":[]}
    li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    for i in li:
    if i < 66:
    dic["k1"].append(i)
    else:
    dic["k2"].append(i)
    print(dic)


    6、输出商品列表,用户输入序号,显示用户选中的商品(升级题)

    商品列表:
    goods = [{"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998}, ]

    要求:
    1:页面显示序号 + 商品名称 + 商品价格,如:
    1 电脑 1999
    2 鼠标 10

    2:用户输入选择的商品序号,然后打印商品名称及商品价格
    3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
    4:用户输入Q或者q,退出程序。

    1、



    goods_list = list()
    while 1:
    print("_*="*10)
    for i,k in enumerate(goods,1):
    print("%s %s %s"%(i,k["name"],k["price"]))
    choice = input("请输入选择的商品号(q or Q 退出)>>: ").strip()
    if choice.isdigit():
    choice = int(choice)
    if choice in range(1,5):
    goods_list.append(goods[choice - 1])
    print("您的购物车列表有:")
    for i in goods_list:
    print("%s %s" % (i["name"], i["price"]))
    elif choice.upper() == "Q":
    break
    else:
    print("输入无效,请重新输入!")









  • 相关阅读:
    Python连接redis时要注意的点
    Python SQLAlchemy多对多外键关联时表结构
    SQLAlchemy中解决数据库访问时出现的Incorrect string value: xxx at row 484
    HDFS集群数据不均衡处理
    elasticsearch数据过期删除处理
    docker使用技巧小记
    kubeadm部署kubernetes-1.12.0 HA集群-ipvs
    k8s全栈监控之metrics-server和prometheus
    k8s小工具
    k8s集群之上游dns--dnsmasq,统一管理kubernetes的dns解析
  • 原文地址:https://www.cnblogs.com/alvin-jie/p/9851020.html
Copyright © 2011-2022 走看看