• 1.13 Python基础知识


    一、字典

      字典是一组键-值对的数据结构。每个键对应一个值。在字典中,键不能重复。根据键可以查询到值。字典是键和值的映射关系

      字典的定义:

      字典通过花括号中用逗号分隔的元素(键-值。键-值对使用冒号分隔),格式如下:

    {键1:值1,[键2:值2,...,键n:值n]}
    
    # 值可以为任意对象。字典中的键是唯一的,不能重复。

      字典也可以通过创建dict对象来创建,格式如下:

    # 创建一个空字典
    dict()
    
    # 使用关键字参数,创建一个新的字典
    dict(**kwargs)
    
    # 从一个字典对象创建一个新的字典
    dict(mapping)
    
    # 使用序列,创建一个新的字典
    dict(iterable)

      

      1、字典的访问操作,基本格式:

    # 返回键为key的value;如果ket不存在,则导致KeyError
    d[key]
    
    # 设置d[key]的值为value;如果key不存在,则添加键/值对
    d[key]=value
    
    # 删除字典元素;如果ket不存在,则导致KeyError
    del d[key]

      2、动态访问字典的数据

      d.keys:返回字典d的键key的列表

      d.values:返回字典d的值values的列表

      d.items():返回字典d的(key,value)对的列表

      3、判断字典键是否存在

      # 如果为True,则表示存在

      key in d

      # 如果为True,则表示不存在

      key not in d

      

      4、字典对象的方法

      我们定义一个字典:

     d = {1:'food',2:'drink',3:'fruit'}
      
    # 删除所有元素
    d.clear()
    print(d)
    
    # 输出结果
    
    {}
    # 浅拷贝字典
    d1 = d.copy()
    print(d)
    print(d1)
    
    # 输出结果
    
    {1: 'food', 2: 'drink', 3: 'fruit'}
    {1: 'food', 2: 'drink', 3: 'fruit'}
    #返回键k对应的值,如果key不存在,返回None
    print(d.get(1))
    print(d.get(5))
    
    # 输出结果
    
    food
    None
    #返回键k对应的值,如果key不存在,返回v
    print(d.get(1,''))
    print(d.get(5,''))
    
    # 输出结果
    
    food
    无
    # 如果键k存在,返回其值,并删除该元素;否则导致KeyError
    print(d.pop(1))
    print(d)
    
    # 输出结果
    
    food {2: 'drink', 3: 'fruit'}
    # 如果键k存在,返回其值,并删除该元素;否则返回v
    print(d.pop(5,''))
    print(d)
    
    # 输出结果
    
    无
    {1: 'food', 2: 'drink', 3: 'fruit'}
    # 如果键k存在,返回其值;否则添加元素k=v,v默认为None
    print(d.setdefault(1))
    
    print(d.setdefault(4))
    print(d)
    
    # 输出结果
    
    food
    None
    {1: 'food', 2: 'drink', 3: 'fruit', 4: None}
    # 使用字典或键值对,更新或添加元素到字典d
    d1 = {1:'食物',4:'书籍'}
    d.update(d1)
    print(d)
    
    # 输出结果
    
    {1: '食物', 2: 'drink', 3: 'fruit', 4: '书籍'}

    二、集合

      集合数据类型是没有顺序的简单对象的聚合,且集合中元素不重复。

      集合的定义:花括号中用逗号分隔元素进行定义的,格式如下:

      {x1,[x2,...,xn]}

      也可以通过set对象方法创建集合,格式如下:

      set():创建一个空的集合

      set(iterable):创建一个集合,包含的元素为可枚举对象iterable中的元素

      1、判断集合元素是否存在

        判断一个元素x是否在集合s中,方法如下:

        x in s :如果为True,则表示存在

        x in not s :如果为True,则表示不存在

    s  = set('hello')
    
    print('h' in s )
    
    print('H' not in s)
    
    # 输出结果
    
    True
    True

      2、集合的运算:并集、交集、差集和对称差集

        1)并集

    s1 = {1,2,3}
    s2 = {2,3,4}
    
    # 对象方法
    print(s1.union(s2))
    
    # 运算符方法
    print(s1 | s2)
    
    # 输出结果
    
    {1, 2, 3, 4}
    {1, 2, 3, 4}

        2)交集

    s1 = {1,2,3}
    s2 = {2,3,4}
    
    # 对象方法
    print(s1.intersection(s2))
    
    # 运算符方法
    print(s1 & s2)
    
    #输出结果
    
    {2, 3}
    {2, 3}

        3)差集

    s1 = {1,2,3}
    s2 = {2,3,4}
    
    # 对象方法
    print(s1.difference(s2))
    
    #运算符方法
    print(s1 - s2)
    
    #输出结果
    
    {1}
    {1}

        4)对称差集

    s1 = {1,2,3}
    s2 = {2,3,4}
    
    # 对象方法
    print(s1.symmetric_difference(s2))
    
    #运算符方法
    print(s1 ^ s2)
    
    # 输出结果
    
    {1, 4}
    {1, 4}

      

      3、集合的比较运算:相等、子集和超集(又称父集)

        1)相等

    s1 = {1,2,3}
    s2 = {2,3,4}
    
    print(s1 == s2)
    print(s1 != s2)
    
    # 输出结果
    False
    True

        2)子集

    s1 = {1,2,3}
    s2 = {3,2,1}
    s3 = {1,2}
    s4 = {7,9}
    
    # 对象方法
    print(s3.issubset(s1))
    
    # 运算符方法
    print(s3 < s1)
    
    输出结果
    True
    True

        3)超集

    s1 = {1,2,3}
    s2 = {3,2,1}
    s3 = {1,2}
    s4 = {7,9}
    
    # 对象方法
    print(s2.issuperset(s3))
    
    #运算符方法
    print(s2 > s3)
    
    #输出结果
    True
    True

      4、集合的其他方法

        1)更新

    s1 = {1,2,3}
    s2 = {2,3,4}
    
    s1.update(s2)
    print(s1)
    
    # 输出结果
    {1, 2, 3, 4}

        2)添加

    s1 = {1,2,3}
    
    s1.add('a')
    print(s1)
    
    # 输出结果
    {1, 2, 3, 'a'}

        3)删除

          remove

    s1 = {1,2,3}
    
    # 从集合中删除元素1,若不存在,则导致KeyError
    s1.remove(1)
    print(s1)
    
    #输出结果
    {2, 3}

          discard

    s1 = {1,2,3}
    
    # 从集合中删除元素3,若不存在,不做任何操作
    s1.discard(3)
    
    print(s1)
    
    #输出结果
    {1, 2}

          pop

    s1 = {1,2,3}
    
    # 从集合中随机弹出一个元素,如果s为空,则导致KeyError
    s1.pop()
    
    print(s1)
    
    #输出结果
    {2, 3}

        

      

      



      

  • 相关阅读:
    [刷题] PTA 7-32 说反话-加强版
    [算法] 堆
    [笔记] 《c++ primer》显示器程序 Chapter7
    [笔记] 《c++ primer》书店程序 Chapter7
    [c++] <vector>
    [笔记] 《c++ primer》书店程序 Chapter2
    [笔记] 《c++ primer》书店程序 Chapter 1
    253. Meeting Rooms II
    461. Hamming Distance
    252. Meeting Rooms
  • 原文地址:https://www.cnblogs.com/topspeedking/p/6424100.html
Copyright © 2020-2023  润新知