Python——dict和set

一、dict (dictionary)的创建

相当于map

定义:形式key: value

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}

二、dict常见操作

  1. 获取元素个数 len()

     >>> len(d)
     3
    
  2. 访问:d[key]
  3. 判断key值是否存在的两种方法:
    ①用if语句直接判断

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

    ②使用dict本身提供的get方法,key值不存在时返回None:

     >> print d.get('Paul')
     None
    
  4. 删除key值:pop(key)

     >>> d.pop('Bart')
    
  5. 遍历:

     >>>for key in d:
     >>>    print key+":",d[key]
     Lisa: 85
     Adam: 95
     Bart: 59
    

三、dict的特点

  • dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
    不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
  • 第二个特点就是存储的key-value序对是没有顺序的,打印的顺序不一定是我们创建时的顺序。
  • 第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。

四、set的创建

set是一个集合,没有重复元素,而且无序。

创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:

>>> s = set(['A', 'B', 'C'])

五、set的常见操作

  1. len()获取元素个数

     >>>len(s)
     3
    
  2. 判断是否存在某元素

     >>> 'Bart' in s
     True
    
  3. 遍历

     s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
     for x in s:
         print x[0]+":",x[1]
    
  4. 添加元素add()

     >>> s = set([1, 2, 3])
     >>> s.add(4)
     >>> print s
     set([1, 2, 3, 4])
    
  5. 删除元素remove():(删除前先判断是否存在此元素)

     >>> s = set([1, 2, 3, 4])
     >>> s.remove(4)
     >>> print s
     set([1, 2, 3])
    
  6. 交集&和并集|运算:

     >>> s1 = set([1, 2, 3])
     >>> s2 = set([2, 3, 4])
     >>> s1 & s2
     {2, 3}
     >>> s1 | s2
     {1, 2, 3, 4}
    

其它博客链接:

  1. 变量和数据类型
  2. list和tuple
  3. 条件语句和循环
  4. dict和set
  5. 函数
  6. 切片+迭代+生成器
  7. 生成器和迭代器
  8. 函数式编程
  9. 模块
  10. 面向对象编程
  11. 面向对象高级编程
  12. 定制类
  13. 枚举类和元类
  14. 错误及处理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值