字典,集合,列表混合使用需注意:

#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"
#a.只读列表,只可读不可修改,元祖中的内部子元素不可修改,若子元素为列表则可修改的.
#b.alexy元素不可修改
#c."k2"对应的值是列表类型,可以被修改
# for k, v in tu[1][2].items():
#     if k=="k2":
#         v.append("Seven")
#         v=tu[1][2].values()
# # print(tu)
# tu[1][2]["k2"]=["age","name","Seven"]
# print(tu)
#d."k3"对应的值是元祖类型,无法被修改
#2, 字典dic,dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
# a. 请循环输出所有的key
# b. 请循环输出所有的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 k,v in dic.items():
#     print(k,v)
# dic["k4"]="v4"
# print(dic)
# dic["k1"]="alex"
# print(dic)
# dic["k3"]=[11,22,33,44]
# print(dic)
# dic["k3"].append(44)
# print(dic)
# 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,给此 ["很多免费的,世界最大的","质量一般"]列表第二个位置插入一个  元素:'量很大'。
#     b,将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。
#     c,在此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表中添加"金老板最喜欢这个"。
#     d,将此["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写。
# e,给'大陆' 对应的字典添加一个键值对 '1048' :['一天就封了']
# f,删除此"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]键值对。
# g,给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来'
# 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"].pop(1)
# print(av_catalog)
#c
# av_catalog["欧美"]["x-art.com"].append("金老板最喜欢这个")
# print(av_catalog)
#d
# av_catalog["日韩"]["tokyo-hot"][1]=av_catalog["日韩"]["tokyo-hot"][1].upper()
# print(av_catalog)
#e
# av_catalog["大陆"]["1048"]="一天就被封了"
# print(av_catalog)
#f
# av_catalog["欧美"].pop("letmedothistoyou.com")
# print(av_catalog)
#g
# av_catalog["大陆"]["1024"][0]=av_catalog["大陆"]["1024"][0]+'可以爬下来'
# print(av_catalog)
#4、有字符串 "k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....}  (升级题)
# s="k:1|k1:2|k2:3|k3:4"
# # s1=s.replace(":","")
# # lst=s1.split("|")
# # dic={}      #[K1,K12,K23,K34]
# # for i in lst:
# #    # dic[str(i[0])]=i[1]
# #     dic.setdefault(i[0:len(i)-1],i[-1])
# # print(dic)
#第一种方法

# s1 = "k:1|k1:2|k2:3|k3:4"
# d = {}
# # print(s1)
# s2 = s1.split('|')
# print(s2)
# for n in s2:
#     n1 = n.split(":")
#     d[str(n1[0])] = n1[1]
# print(d)

#第二种方法
# s1 = "k:1|k1:2|k2:3|k3:4"
# d = {}
# # print(s1)
# s2 = s1.split('|')
# print(s2)
# for n in s2:
#     n1 = n.split(":")
#     d.setdefault(n1[0], n1[1])
# print(d)


#第三种方法;
# s1 = "k:1|k1:2|k2:3|k3:4"
# d = {}
# # print(s1)
# s2 = s1.split('|')
# print(s2)
# for n in s2:
#     n1 = n.split(":")
#     d[n1[0]] = n1[1]
# print(d)

#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': '大于66的所有值列表', 'k2': '小于66的所有值列表'}
# li1=[]
# li2=[]
# for el in li:
#     if el>66:
#         li1.append(el)
#     else:
#         li2.append(el)
# dic['k1']=li1
# dic['k2']=li2
# print(dic)
第二种方法:
# li= [11,22,33,44,55,66,77,88,99,90]
# dic = {}
# for el in li:
#     if el > 66:
#         dic.setdefault("k1", []).append(el) # 1. 新增, 2. 查询
#     else:
#         dic.setdefault("k2", []).append(el)  # 1. 新增, 2. 查询
# 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,退出程序。 goods = [{"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] # for i in goods: # print(goods.index(i)+1,i["name"],i["price"]) # while 1: # content =input("用户输入的序号:") # if content.upper()=="Q": # break # if int(content)<=len(goods): # s=int(content) # print(goods[s-1]["name"],goods[s-1]["price"]) # else: # print("输入有误") # continue
# goods = [{"name": "电脑", "price": 1999},
#          {"name": "鼠标", "price": 10},
#          {"name": "游艇", "price": 20},
#          {"name": "美女", "price": 998}]
#
# for i in range(len(goods)):
#     good = goods[i]
#     print(i+1, good['name'], good['price'])
#
# while 1:
#     content = input("请输入你要买的商品:")
#     if content.upper() == "Q":
#         break
#     index = int(content) - 1    # 索引
#     if index > len(goods) - 1 or index < 0:  # 调试
#         print("输入有误. 请重新输入:")
#         continue
#     print(goods[index]['name'], goods[index]['price'])
原文地址:https://www.cnblogs.com/zhangdaye/p/9289270.html