zoukankan      html  css  js  c++  java
  • 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超市。 下面是我们的商品及价格:')
    su_m=0
    for key in shop .items():
    print(key)
    while True:
    isno = str(input("您需要购买商品吗? yes/no "))
    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

     
     

     

  • 相关阅读:
    哈希表
    跳表
    哈夫曼之谜
    选择树、判定树和查找树

    将gbk字符串转换成utf-8,存储到注册表中后,再次从注册表读取转换成gbk,有问题!!!
    函数内部还是不要使用 strtok()
    没想到: System.out.println(n1 == f1 ? n1 : f1);
    在不同DPI屏幕环境下,让图标显示的尺寸保持不变,使用 LoadImage() 加载图标
    在多线程中显示模态窗口,出现异常现象
  • 原文地址:https://www.cnblogs.com/tangmf/p/14015777.html
Copyright © 2011-2022 走看看