• python冲刺(2)


      dist 类型 

    Python的 dict 就是专门干这件事的。用 dict 表示“名字”-“成绩”的查找表如下:

    d = {
        'Adam': 95,
        'Lisa': 85,
        'Bart': 59
    }
    表示形式很像数组,花括号表示这是一个dict,然后按照key:value依次写,最后一个键值对的‘,’可以省略。
    dict也是一个集合,所以可以用len()的形式查询集合内.
        

        可以简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key:

        >>> print d['Adam']
        95
        >>> print d['Paul']
        Traceback (most recent call last):
          File "index.py", line 11, in <module>
            print d['Paul']
        KeyError: 'Paul'

        注意: 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。

        要避免 KeyError 发生,有两个办法:

        一是先判断一下 key 是否存在,用 in 操作符:

        if 'Paul' in d:
            print d['Paul']

        如果 'Paul' 不存在,if语句判断为False,自然不会执行 print d['Paul'] ,从而避免了错误。

            另,dict本身提供一个get方法,在key不存在的时候返回none. : print(d.get(key)) .

        dict的第一个特点是查找速度快,无用论是10个元素还是10万个元素,查找速度都一样。List是伴随数量增加查找时间变长。代价是占用内存。

                  第二个特点是存储的k-v键值对,是没有顺序的。不同打印机打印出来的顺序都会不同,这说明dict的内部是无序的,所以不能用dict存有序集合

        第三个特点是key的元素是不可变的。不可变的都可以作为key,像list这样的就不行。

        

        可以直接用d[key]的形式直接给dict赋值,或者重写某个key的value。

        set类型

        set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。会自动去掉重复的值。

          所以,访问 set中的某个元素实际上就是判断一个元素是否在set中。

             s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
            
            >>> 'Bart' in s
            True
            >>> 'Bill' in s
            False       
    说明set中区分大小写。

    请用 for 循环遍历如下的set,打印出 name: score 来。

    s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
     

    注意到set的元素是tuple,因此 for 循环的变量被依次赋值为tuple。

    参考代码:

    s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
    for x in s:
        print x[0] + ':', x[1]
  • 相关阅读:
    蛙蛙请教:把一段c算法代码转换成c#代码。
    和病毒折腾了两天
    WawaKM预览版发布,欢迎大家测试反馈哦
    (转)深度分析如何在Hadoop中控制Map的数量
    [转载]JAVA操作符
    (转)Hive Index
    Hadoop++:Hadoop的局部性能改良
    深入了解Hive Index具体实现
    Linux echo命令
    (转)带索引的mapReduce
  • 原文地址:https://www.cnblogs.com/simplife-xd/p/8029983.html
Copyright © 2020-2023  润新知