zoukankan      html  css  js  c++  java
  • Python 基础 Dict 和 Set 类型

    python 什么是dict
      例如:
        d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
        我们把名称称为key,对应的成绩称为value,dic就是通过key 来查找value.
        花括号{} 表示这是一个dict,然后按照key:value,写出即可,最后一个
          key:value 的逗号可以省略。len() 函数可以计算出任何集合的大小
            len(d) 43
     
    python 访问dict
      可以简单使用d[key] 的形式来查找对应的value,这和list 很像,不同之处是,list
      必须要使用索引返回对应的元素,而dict 使用key.
        例如: print d['Adam']
            95
      通过key 访问dict 的value, 只要key 存在,dic 就返回对应的value.
      如果key 不存在,会直接报错: KeyError
        if 'Paul' in d:
           print d['Paul']
      使用dict 本身提供的一个get 方法,在key 不存在的时候,返回None
        print d.get('Bart')
          59
     
    python dict的特点
      dict 的第一个特点就是查找速度快,无论dict有10 个元素还是10 万元素,查找速度
      都是一样,而list 的查找速度会随着元素的增加而逐渐下降。
      dict 的缺点是占用内存大,还会浪费很多内容,list 正好相反。
      dict 是按 key 查找,所以,在dict 中,key 不能重复。
      dict 的第二个缺点就是存储的key-value序对是没有顺序的。
      d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
        print d
          {'Lisa': 85, 'Adam': 95, 'Bart': 59} 打印的顺序不是我们创建的的顺序,
        不同的机器打印的顺序不同。
      dict 的第三个特点是作为key 的元素必须不可变,
     
     
    python 更新dict
        dict 是可变的,也就是说,我们可以随时往dict 中添加新的key-value
          比如已有dict
            d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
              要把新同学的成绩 72 加进去,用赋值语句。
            d['Paul'] = 72
            如果key 已经存在,则赋值会用新的value 替换掉原来的value。
     
    python 遍历dict
        由于dict 也是一个集合,所以,遍历dict 和遍历list 类似,都可以通过for 循环实现。
        直接使用for 循环可以遍历dict 的key
          d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
            for key in d:
              print key
            Lisa Adam Bart
        由于通过key 可以获取对应的value,因此,在循环体内,可以货到value 的值。
     
    python 什么是set
        set 持有一系列元素,这一点和list 很像,但是set 的元素没有重复,而是无序的。
        创建set 的方式是调用set() 并传入list,list的元素作为set 的元素
        s = set(['A','B','C'])
        因为set 不能包含重复的元素,所以,当我们出入包含重复的远大的list 的时候
        set会自动去掉重复的元素。
     
    python 访问set
        由于set 存储的是无序的集合,所以我们没有办法通过索引来访问。
        访问set 中的某个元素实际上就是判断一个元素是否在set 中
          例如:
            s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
            'Bart' in s
            True
     
    python set的特点
        set 的内部结构和 dict 很像,唯一的区别就是不存储value,因此判断
          一个元素是否在set中速度很快。
          任何可变对象不能放入set中。
        set 存储的元素是没有顺序的。
          星期一到星期日可以用字符串'MON', 'TUE', ... 'SUN'表示。
            weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
            再判断输入是否有效,只需要判断该字符串是否在set中:
            x = '???' # 用户输入的字符串 if x in weekdays: print 'input ok' else: print 'input error'
     
    python 遍历set
        由于 set 也是一个集合,所以,遍历 set 和遍历 list 类似,都可以通过 for 循环实现。
        直接使用 for 循环可以遍历 set 的元素:
          s = set(['Adam', 'Lisa', 'Bart'])
            for name in s:
              print name
            Lisa Adam Bart
     
    python 更新set
        由于set 存储的是一组不重复的无序元素,因此,更新set 主要做两件事。
        一是把新的元素添加到set中,而是把已有的元素从set 中删除。
        添加元素时,用set 的add() 方法。
        s = set([1, 2, 3])
          s.add(4)
          print s
          set([1, 2, 3, 4])
        添加已经存在的元素不会报错,但是不能添加进去。
        删除set中的元素时,用set的remove()方法:
        s = set([1, 2, 3, 4])
          s.remove(4)
          print s
          set([1, 2, 3])
        如果删除的元素不存在set中,remove()会报错

  • 相关阅读:
    Xcode6模拟器下键盘出不来的原因
    iOS7View被导航栏遮挡问题的解决
    iOS中设置导航栏标题的字体颜色和大小
    iphone ios 屏幕,导航条,状态栏的高度
    iOS: TableView如何刷新指定的cell 或section
    rest api load test
    异步图片处理服务器
    bitbucket SSH 生成
    基于Token的授权(with srping mvc)
    Netty性能调优
  • 原文地址:https://www.cnblogs.com/nmxs/p/8616906.html
Copyright © 2011-2022 走看看