Python3零基础学习笔记四

字典的成员资格判断 in   not in  运算符
    用in运算符可以判断一个键是否存在与字典中,如果存在则返回True,否则返回False
    not in 返回值与in相反.
    【该判断方式只能判断键,不能判断值。】
列表的in运算符和字典的in运算符比较:
    1.列表的in运算符计算时间会因为列中元素个数增加而增加。列表元素越多,判断越慢。
    【因为其为顺序存储,需要按顺序比对】
    2.字典的in运算符计算时间不会因为键值对的个数增加而增加,操作速度快于列表。
    【字典的键是通过‘散列存储’储存的,通过哈希运算给定每个键的确定属性,无需比对,直接查找。】


字典的迭代访问:
    容器是可迭代对象,字典只能对键进行迭代访问
           d = {'name':'xiaozhao','birthday':(2008.8.8)}
           for k in d:
               print(k)


可以用于字典的内建函数(built-in):(只对键有作用。)
         len(x)  返回字典键值对个数
         max(x)  返回字典键的最大值
         min(x)  返回字典键的最小值
         sum(x)  返回字典键的和
         any(x)  对所有键进行真值测试,有一个为True结果为True
         len(x)  对所有键进行真值测试,所有为True结果为True


字典的方法:
          d.clear()        清空字典
          d.pop(key)     移除键,同时返回此键所对应的值。
          d.copy()         复制一个字典


字典推导式:
          语法:
           {键表达式:值表达式 for 变量 in 可迭代对象[if 真值表达式]
          字典推导式的嵌套:
            同列表推导式嵌套


字典VS列表:
        1. 都是可变对象
        2.索引方式不同,列表用整数索引, 字典用键索引
        3.字典查找速度‘可能’会快于列表(important)
        4.列表储存是有序的,字典储存是无序的(散列存储)
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
集合 set:
     集合是可变容器
     集合内的数据对象都是唯一的(不能重复多次)
     集合是无序的储存结构,集中的数据没有先后顺序呢关系
     集合内的元素必须是不可变对象
     集合是可迭代对象
     集合是相当于只有键没有值的字典(键则是集合的数据)
    
创建空的集合:
     set()   不能用{} 
创建非空集合:
     s = set(iterable)
     s = {1,2,3,4}    ……集合
     s = {}    ……字典


集合的运算:
   运算符:&(交集)     |(并集)    -(补集)  ^(对称补集)    <(判断左是右的子集)    
    > (判断左是右的超集)  ==  !=(集合相同和不同)         >=    <=(略)      in /  not in(略)
     s1 = {1,2,3}
     s2 = {2,3,4}
     符号&:(交集)
     s3 = s1&s2  = {2,3}
     符号|:(并集)
     s4 = s1 | s2 ={1,2,3,4}
     符号-:(补集)
     s5 = s1  - s2 = {1}
     s6 = s2 - s1 ={4}
     符号^:(对称补集)
     s7 = s1^s2={1,4}
     符号 >  <(超集,子集)
     {1,2,3}>{1,2}
     {2,3,1}>{3,2}
能用于集合的函数:
     len  max  min  sum  any  all  
集合是可迭代对象


python3 中集合的常用方法:
      s.add(e)        添加,若已存在则不添加
      s.remove(e)   删除                       (若不存在,则产生错误)
      s.discard(e)   从集合中移除一个元素e       (若不存在 无影响)
      s.clear()        清空集合
      s.copy()        浅拷贝集合
      s.pop()         从集合中随机删除一个元素(不存在会报错)  
      s.update(s2)  将集合s2中的元素添加到s中


集合推导式:
      集合推导式使用可迭代对象生成集合的表达式 
      语法:
         {表达式  for 变量 in 可迭代对象 [if 真值表达式]}
      示例:
         num = (1,2,3,2,2,3,3,4,5)
         s = {x for x in num}
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
固定集合(frozenset)
      固定集合是不可变的,无序的,含有不重复元素的集合。
      作用:
          固定集合可以作为字典的键,还可以作为集合的值。
创建空的固定集合
      fs = frozenset()
创建非空的固定集合
      fs(iterable)  用可迭代对象填充。
      表达形式:frozenset({xxxxxx})
      普通集合:{xxxxxxxx}
运算:&    |    -    ^    in    not in     <    <=    >    >=    ==    !=(这些与set完全相同)
固定集合的方法:见help(frozenset)
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
列表,字典,集合对象的优缺点:
       1.都为可变类型
       2.列表的‘尾部插入’速度比较快,查‘中间插入’和‘头插入’数据速度较慢
       3.列表为有序
       4.字典的添加删除修改,快于列表
       5.集合的添加删除快于列表,切不可重复。
 

猜你喜欢

转载自blog.csdn.net/sundy_l/article/details/80346759