Python练习代码-第十一章-字典练习
11.4.1 字符串转字典
正则,快速分割字符串为列表
map/eval 字符串转换
for循环条件简写
# 10.6.2/11.4.1 面包牛奶
import re
# 字典创建
dict = {}
str1 = "牛奶,面包,可乐,饼干,糖果,水果"
str2 = "65,15,39,45,24,35.8"
# 1.字符串分割成列表 正则法
list1 = re.findall("[^,]+", str1)
list2 = re.findall("[^,]+", str2)
# 2.eval转换为数据的实际类型
list21 = list(map(eval, list2))
# print(list1,list21)
# 3. 字典赋值
for i, j in zip(list1, list21):
dict[i] = j
# 4. 字典修改
dict["可乐"] = 60
# 4. 字典值求和
sum = sum(x for x in dict.values())
print("您购买%d件物品,共计:%.2f元" % (len(dict), sum))
11.4.2 银行卡加密码
fromkeys ,字典批量赋值
import re
dict,list1= {},[]
for i in range(610001,610101):
list1.append(str(i))
dict = dict.fromkeys(list1,"000000")
print(dict)
11.4.3 超市售货统计程序
要求: 输出结果如下
dict0 = {1:"日期",2:"货品名称",3:"数量",4:"单价"}
dict1 = {"11月24日":["牛奶","方便面","糖果"],
"11月25日":["牛奶","咖啡","饼干","火腿肠"],
"11月26日":["奶茶","牛奶","方便面"]}
dict2 = {"牛奶":5.5,"方便面":4,"糖果":12,"咖啡":6,"饼干":6,"火腿肠":5,"奶茶":5}
dict3 = {"11月24日":{"牛奶":15,"方便面":25,"糖果":10},
"11月25日":{"牛奶":25,"咖啡":5,"饼干":15,"火腿肠":10},
"11月26日":{"奶茶":10,"牛奶":20,"方便面":15}}
for i,j in zip(dict3.keys(),dict3.values()):
print(i)
sum0 ,sumxl= 0,0
for k in j.items():
# 列表转换
list1 = list(k)
# 获取数量和单价 及单日求和
dj = dict2.get(list1[0])
xl = list1[1]
sumxl += xl
sum0 += xl * dj
# 列表插入 为字符串拼接做准备
list1.insert(1," "+dict0[3]) #文字数量
list1.insert(2,": ")
list1.append(" "+dict0[4]+": "+str(dj))#单价: 数值
# 字符串转换及合并
str1 = "".join(map(str,list1))
# 输出商品数量
print(" ",str1)
# 输出当日货物及其卖价小计
print("%s卖出的货物%d件,小计: %.2f元"%(i,sumxl,sum0))
# print("%.2f"%( * dj))
# dict3 = {"11月24日":{"牛奶":{"数量":15,"单价":5.5},"方便面":{"数量":25,"单价":4},"糖果":{"数量":10,"单价":12}},
# "11月25日":{"牛奶":{"数量":25,"单价":5.5},"咖啡":{"数量":5,"单价":6},"饼干":{"数量":15,"单价":6},"火腿肠":{"数量":10,"单价":5},},
# "11月26日":{"奶茶":{"数量":10,"单价":5},"牛奶":{"数量":20,"单价":5.5},"方便面":{"数量":15,"单价":4}}
# }