Python学习4
使用dict(字典)
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
使用Python写一个dict如下
d={'mike':45,'linda':55,'james':65}
print(d['james'])
65
把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:
d['Adam'] = 67
print d['Adam']
67
由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:
d['Jack'] = 90
print d['Jack']
90
d['Jack'] = 88
print d['Jack']
88
dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。
这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。
* 使用字典制作购物车
def panduan_9(su_m):
if su_m < 1000:
return su_m
print('你在本店消费了超过1000元,享受9折优惠')
return su_m*0.9
shop={'辣条':30,'酸奶':50,'薯片':60,'饼干':40,'可乐':20}
print('欢迎光临55超市。\n下面是我们的商品及价格:')
su_m=0
for key in shop .items():
print(key)
while True:
isno = str(input("您需要购买商品吗? yes/no \n"))
if isno == 'no':
su_m=panduan_9(su_m)
print('您的消费为%d元,欢迎下次光临!' %su_m)
break
name = str(input('请您输入要购买商品的名称:'))
if name in shop.keys():
su_m += int(input('请输入您要购买的数量:')) * shop.get(name)
else:
print('很抱歉,本店暂不能给您提供该商品。')
* 九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print('%s*%s=%s' % (j,i,j*i),end=(' '))
print('')
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81