day 5 - 2 字典(dict)练习

时间:2023-02-02 14:56:12

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

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

#1)讲述元祖的特性
子元素不可以被修改,子元素中的子元素可能被修改 #2)请问 tu 变量中的第一个元素 "alex" 是否可被修改?
不可以,是元祖的子元素 不可以被修改 #3)请问 tu 变量中的 "k2" 对应的值是什么类型?是否可以被修改?如果可以,请在
#其中添加一个元素 "seven"
print(type(tu[1][2]["k2"]))
可以
tu[1][2]["k2"].append('seven')
print(tu) #4)请问 tu 变量中的 "k3" 对应的值是什么类型?是否可以被修改?如果可以,请在
#其中添加一个元素 "seven"
print(type(tu[1][2]["k3"]))
不可以

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

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. 循环打印输出所有 key 和 value
for i in dic.items():
print(i) #d. 请在字典中添加一个键值对 "k4":"v4" 并输出
dic["k4"] = "v4"
print(dic) #e. 修改字典中 "k1" 为 "alex" 并输出
dic["k1"] = "alex"
print(dic) #f. 在字典 "k3" 中 追加一个元素 18 并输出
dic["k3"].append(18)
print(dic)
#g. 在字典 "k3" 对应的第一个值中插入元素 18 并输出
dic["k3"].insert(0,18)
print(dic)

3. 元素分类

有如下值 li=[11,22,33,44,55,66,77,88,99],将所有大于 66 的值保存至字典的第一个 key 中,将小于 66 的值保存至第二个 key 值中

即:{'k1':大于 66 的所有值列表,"k2":小于 66 的所有值列表}

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

4.购物车

输出商品列表,用户输入序号,显示用户选中的商品
商品 li=["手机","电脑","鼠标","游艇"]
要求:
1)页面显示 序号 + 商品名称
 如:
 1 手机
 2 电脑
2)用户输入选择的商品序号,然后打印商品名称
3)如果用户输入的商品序号有误,提示错误并重新输入
4)用户输入 Q 或 q,退出程序

while 1:
li=["手机","电脑","鼠标","游艇"]
for i in li:
print("{}\t\t{}".format(li.index(i)+1,i))
num = input("请输入商品序号/输入 Q\q 退出:")
if num.isdigit():
num = int(num)
if num > 0 and num <= len(li):
print(li[num-1])
else:print("请输入有效数字")
elif num.upper() == 'Q':
break
else:print('请输入数字')