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()会报错

Python 基础 Dict 和 Set 类型的更多相关文章

  1. Python之Dict和Set类型(入门5)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6407905.html 本文出自:[Edwin博客园] Python之Dict和Set类型 1. Python ...

  2. python基础知识5---数据类型、字符编码、文件处理

    阅读目录 一 引子 二 数字 三 字符串 四 列表 五 元组 六 字典 七 集合 八 数据类型总结 九 运算符 十 字符编码 十一 文件处理 十二 作业   一 引子 1 什么是数据? x=10,10 ...

  3. python基础知识4--数据类型与变量

    阅读目录 一.变量 二.数据类型 2.1 什么是数据类型及数据类型分类 2.2 标准数据类型: 2.2.1 数字 2.2.1.1 整型: 2.2.1.2 长整型long: 2.2.1.3 布尔bool ...

  4. Python基础-字符串、集合类型、判断、深拷贝与浅拷贝、文件读写

    字符串 1.定义三个变量: 2.交换两个变量值 1)引入第三个变量: 2)Python引入第三方变量: 3)不引入第三方变量: 3. isalpha 是否是汉字或字母 4.Isalnum  是否是汉字 ...

  5. Python基础知识-05-数据类型总结字典

    python其他知识目录 1.一道题,选择商品的序号.程序员和用户各自面对的序号起始值 如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品: 0,汽车1,飞机2,火箭用 ...

  6. python之Dict和set类型

    Dict就是一种key:value的表格: >>> d = { 'Adam':95, 'Lisa':85, 'Bart':59, 'Paul':75 } >>> p ...

  7. python基础——数字&集合&布尔类型

    Python的核心数据类型 内置对象 对象类型 例子 数字 123,3.1415,3+4j,Decimal(小数),Fraction(分数) 字符串 'dodo',"guido's" ...

  8. Python基础笔记_变量类型

     下面是W3C学习笔记 , , ) :] ]) :]) :]) :-]) :-]) ]) :]) :]) ) , , ]) :]) :]) ) , , , ]) :]) :]) ) ] = , ])) ...

  9. Python基础:04映射类型

    字典是Python语言中唯一的映射类型.一个字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象.字典中的数据是无序排列的. 映射类型也可被称做哈希表,哈希表的算法是获取键,对键执行一 ...

随机推荐

  1. 相比之前其他几个入门的, 推荐: 简单vue2 入门教程

    注意:Vue.js 不支持 IE8 及其以下 IE 版本.       具体可以看下  http://www.runoob.com/vue2/vue-tutorial.html 以下是学习过程 Vue ...

  2. 重温C语言(1)----计算算术表达式的值

    <C程序设计语言>练习题 5-10 编写程序 expr,计算从命令行输入的逆波兰表达式的值,其中每个运算符或操作数用一个单独的参数表示.例如,命令 expr 2 3 4 + * 计算表达式 ...

  3. JavaScript : Array assignment creates reference not copy

    JavaScript : Array assignment creates reference not copy 29 May 2015 Consider we have an array var a ...

  4. input标签添加上disable属性在ios端字体颜色不兼容的问题

    input[disabled],input:disabled,input.disabled{ color: #3e3e3e; -webkit-text-fill-color: #3e3e3e; -we ...

  5. Week1——JavaEE

    本科目标 首先,对我来说自己想走的方向是JavaWeb后台开发,因此JavaEE对我来说也是比较重要的,想学好这门课.进一步巩固自己现有的基础知识,完善自己的项目经验,更加熟悉开发流程.在框架方面我还 ...

  6. Oracle replace()函数

    往Oracle 中导入数据时,有一个列导入的数据应该时‘2017-04-17’ 的格式,结果导入的数据为 ‘2017/04/17’格式的,1000多条记录要一条条改基本不可能. 于是想到了replac ...

  7. linux下pgAdmin4安装

    首先到pgAdmin4官方网站下载安装包:https://www.pgadmin.org/download/ 我下载的是3.0; 到文件所在目录执行安装命令: sudo pip install ./p ...

  8. Linux 硬件RAID详解系统功能图

    RAID-0(条带模式) 特点: 在读写的时候可以实现并发,所以相对其读写性能最好,每个磁盘都保存了完整数据的一部分,读取也采用并行方式,磁盘数量越多,读取和写入速度越快. 因为没有冗余,一个硬盘坏掉 ...

  9. 提升PHP速度

    PHP的优点之一是速度很快,对于一般的网站应用,可以说是已经足够了.不过如果站点的访问量很高.带宽窄或者其它的因素令服务器产生性能瓶颈的时候,你可能得想想其它的办法来进一步提高PHP的速度了.这篇文章 ...

  10. [UOJ 0034] 多项式乘法

    #34. 多项式乘法 统计 描述 提交 自定义测试 这是一道模板题. 给你两个多项式,请输出乘起来后的多项式. 输入格式 第一行两个整数 nn 和 mm,分别表示两个多项式的次数. 第二行 n+1n+ ...