PT--数据类型( dict )

题6 购物车   题4  用到解构


#
1. tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44]) # a. 元组的特性 ''' 元组是只读列表,只能看,不在支持增\删\改操作 使用 ( ) 表示元组 元组是可迭代对象,可以使用for循环 如果元组中只有一个元素表示为:(元素,) 必须要有逗号 空元祖:tuple() ''' # b. ''' tu变量中第一个元素"alex"不可被修改 ''' # c. k2 对应的类型,若能修改则添加"seven" ''' k2 对应的值是列表,可以修改. ''' tu[1][2].get("k2").append("seven") print(tu) # d. k3 对应的类型,若能修改则添加"seven" ''' k3对应的值是元组,元组属于只读列表是不可修改的 ''' # 2. dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]} # a. 输出所有的key for i in dic.keys(): print(i) # b. 输出所有的value for i in dic.values(): print(i) # c. for i in dic.items(): print(i) # d. 添加一个键值对,"k4": "v4" dic.setdefault("k4","v4") print(dic) # e. 修改字典中 "k1" 对应的值为 "alex" dic["k1"]="alex" print(dic) # f. k3对应的值中追加一个元素 44 dic.get("k3").append(44) print(dic) # g. k3对应的值的第 1 个位置插入个元素 18 dic.get("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.get("欧美").get("www.youporn.com").insert(1,"量很大") print(av_catalog) # b. ["质量很高,真的很高","全部收费,屌丝请绕过"] 删除第2个 av_catalog.get("欧美").get("x-art.com").pop(1) print(av_catalog) # c. ["质量很高,真的很高","全部收费,屌丝请绕过"]列表中添加"金老板最喜欢这个" av_catalog.get("欧美").get("x-art.com").append("金老板最喜欢这个") print(av_catalog) # d. ["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写 content=av_catalog.get("日韩").get("tokyo-hot")[1] av_catalog.get("日韩").get("tokyo-hot")[1]=content.upper() print(av_catalog) # e. 给'大陆' 对应的字典添加一个键值对 '1048' :['一天就封了'] av_catalog.get("大陆")["1048"]=["一天就封了"] print(av_catalog) # f. 删除此"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]键值对。 del av_catalog.get("欧美")["x-art.com"] print(av_catalog) # g. 给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来' ss=av_catalog.get("大陆").get("1024")[0] av_catalog.get("大陆").get("1024")[0]=ss+",可以爬下来" 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" lis1=str1.split("/") dic={} for i in lis1: lis2=i.split(":") dic.setdefault(lis2[0],int(lis2[1])) print(dic) #方法二: 解构 str1="k:1/k1:2/k2:3/k3:4" lis1=str1.split("/") dic={} for i in lis1: a,b=i[0],i[1] dic.setdefault(a,b) # 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 i in li: if i>66: dic.get("k1").append(i) #get() 也可用 setdefault() elif i<66: dic.get("k2").append(i) print(dic) # 6. 购物车 #方法一: goods = [{"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] print("1", goods[0].get("name"), goods[0].get("price")) print("2", goods[1].get("name"), goods[1].get("price")) print("3", goods[2].get("name"), goods[2].get("price")) print("4", goods[3].get("name"), goods[3].get("price")) while 1: num=input("请用户选择商品的序号:") if num=="1": print(goods[0].get("name"), goods[0].get("price")) elif num=="2": print(goods[1].get("name"), goods[1].get("price")) elif num=="3": print(goods[2].get("name"), goods[2].get("price")) elif num=="4": print(goods[3].get("name"), goods[3].get("price")) elif num=="Q" or num=="q": break else: print("输入序号有误,请重新输入!") #方法二: goods = [{"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] while 1: for i in goods: print(goods.index(i)+1,i["name"],i["price"]) num=input("请输入商品序号:") for i in goods: print(goods.index(i) + 1, i.get("name"), i.get("price")) str_input=input("请输入序号,输入Q或q退出:") if str_input.isdigit() and int(str_input)<len(goods): i_index=int(str_input)-1 print(goods[i_index]["name"],goods[i_index]["price"]) elif str_input.upper()=="Q": break else: print("输入有误,请重新输入!")

 

posted @ 2018-08-01 16:40  葡萄想柠檬  Views(875)  Comments(0)    收藏  举报
目录代码