zoukankan      html  css  js  c++  java
  • 7.20_python_lx_day8

    一.字典相关函数

    方法一

    1 dic = {}
    2 dic["a"] = "一表人才,除了帅气的皮囊之外,一无所有"
    3 dic['b'] = "渣男"
    4 dic["c"] = "抠脚老汉"
    5 print(dic)#{'a': '一表人才,除了帅气的皮囊之外,一无所有', 'b': '渣男', 'c': '抠脚老汉'}

    方法二

    fromkeys() 使用一组键和默认值创建字典{不推荐:创建的字典值相同}

    1 lst = ["a","b","c"]
    2 dic = {}.fromkeys(lst,None)
    3 print(dic)#{'a': None, 'b': None, 'c': None}

    (1)pop         通过键去删除键值对 (若没有该键可设置默认值,预防报错)

    1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
    2 res = dic.pop('a')
    3 print(res)#1
    4 print(dic)#{'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
    5 #res = dic.pop('z') error  报错
    6 res = dic.pop('z','没有这个键')#没有这个键
    7 print(res)#{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}

    (2)popitem   删除最后一个键值对

    1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
    2 res = dic.popitem()
    3 print(res) #('f', 6)
    4 print(dic) #{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

    (3)clear      清空字典

    1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
    2 res = dic.clear()
    3 print(res) #None
    4 print(dic) #{}

    update() 批量更新(有该键就更新,没该键就添加)

    方法一

    1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
    2 dic_new = {'a':111,'e':555,'b':222,'z':999,'h':888}
    3 dic.update(dic_new)
    4 print(dic) #{'a': 111, 'b': 222, 'c': 3, 'd': 4, 'e': 555, 'f': 6, 'z': 999, 'h': 888}

    方法二

    1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
    2 dic.update('a'= 111,'e'= 555,'b'=222,'z'=999,'h'=888)
    3 print(dic)#{'a': 111, 'b': 222, 'c': 3, 'd': 4, 'e': 555, 'f': 6, 'z': 999, 'h': 888}

    get    通过键获取值(若没有该键可设置默认值,预防报错)

    1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
    2 res = dic.get('a')
    3 print(res)#1
    4 res = dic.get('z')
    5 print(res)#None
    6 res = dic.get('z',没有这个键)
    7 print(res)#没有这个键

    重要***

    (1)keys   将字典的键组成新的可迭代对象

    1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
    2 res = dic.keys()
    3 print(res)#dict_keys(['a', 'b', 'c', 'd', 'e', 'f'])

    (2)values  将字典中的值组成新的可迭代对象

    1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
    2 res = dic.values()
    3 print(res)#dict_values([1, 2, 3, 4, 5, 6])

    (3)items  将字典的键值对凑成一个个元组,组成新的可迭代对象

    1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
    2 res = dic.items()
    3 print(res)#dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5), ('f', 6)])

    二.集合的相关函数和操作

    (1)intersection   交集  简写 &

    1 set1=(1,2,3,4,5)
    2 set2=(6,7,8,9,5)
    3 res = set1.intersection(set2)
    4 print(res)#{5}
    5 res = set1 & set2
    6 print(res)#{5}

    (2)difference   差集  简写 -

    1 set1= {1,2,3,4,5}
    2 set2= {6,7,8,9,5}
    3 res = set1.difference(set2)
    4 print(res)#{1, 2, 3, 4}
    5 res = set1 - set2
    6 print(res)#{1, 2, 3, 4}

    (3)union       并集  简写 |

    1 set1= {1,2,3,4,5}
    2 set2= {6,7,8,9,5}
    3 res = set1.union(set2)
    4 print(res)#{1, 2, 3, 4, 5, 6, 7, 8, 9}
    5 res = set1 | set2
    6 print(res)#{1, 2, 3, 4, 5, 6, 7, 8, 9}

    (4)symmetric_difference 对称差集 (补集情况涵盖在其中)  简写 ^

    1 set1= {1,2,3,4,5}
    2 set2= {6,7,8,9,5}
    3 res = set1.symmetric_difference(set2)
    4 print(res)#{1, 2, 3, 4, 6, 7, 8, 9}
    5 res = set1 ^ set2
    6 print(res)#{1, 2, 3, 4, 6, 7, 8, 9}

    (5)issubset   判断是否是子集  简写 <

    1 set1= {1,2,3}
    2 set2= {1,2,3,4,5,6}
    3 res = set1.issubset(set2)
    4 print(res)#True
    5 res = set1 < set2
    6 print(res)#True

    (6)issuperset 判断是否是父集  简写 >

    1 set1= {1,2,3}
    2 set2= {1,2,3,4,5,6}
    3 res = set2.issuperset(set1)
    4 print(res)#True
    5 res = set2 > set1
    6 print(res)#True

    (7)isdisjoint 检测两集合是否不相交  不相交 True  相交False

     1 set1= {1,2,3}
     2 set2= {1,2,3,4,5,6}
     3 res = set2.isdisjoint(set1)
     4 print(res)#False
     5 #相交返回False
     6 #不想交返回True
     7 set1= {7,8,9}
     8 set2= {1,2,3,4,5,6}
     9 res = set1.isdisjoint(set2)
    10 print(res)#True

    集合相关函数

     (8)add    向集合中添加数据 (一次加一个)

    1 set={'a','b','c'}
    2 set.add('e')
    3 print(set)#{'e', 'c', 'b', 'a'}

    (9)update 迭代着增加 (一次加一堆)

    set={'a','b','c'}
    lst = [1,2,3,4,5,6]
    set.update(lst)
    print(set)#{1, 2, 3, 4, 5, 6, 'c', 'b', 'a'}

    (10)clear  清空集合

    1 set={'a','b','c'}
    2 set.clear()
    3 print(set)#set()

    (11)pop    随机删除集合中的一个数据

    1 set={'a','b','c'}
    2 set.pop()
    3 print(set)#随机删除,结果不定

    (12)remove  删除集合中指定的值(不存在则报错)(了解)

    1 set={'a','b','c'}
    2 set.remove('a')
    3 print(set)#{'b','c'}
    4 
    5 set={'a','b','c'}
    6 set.remove('f')
    7 print(set)#error  报错

    (13)discard 删除集合中指定的值(不存在的不删除 推荐使用)

    1 set={'a','b','c'}
    2 set.discard('a')
    3 print(set)#{'b', 'c'}
    4 
    5 set={'a','b','c'}
    6 set.discard('f')
    7 print(set)#{'a','b', 'c'}  不会报错

    冰冻集合 frozenset

    frozenset 可强转容器类型数据变为冰冻集合

    冰冻集合一旦创建,不能在进行任何修改,只能做交叉并补操作

    1 lst1 = ["lzh",88,"男性","傻逼"]
    2 fz1 = frozenset(lst1)
    3 print(fz1 , type(fz1))#frozenset({88, 'lzh', '傻逼', '男性'}) <class 'frozenset'> 依旧无序
    1 lst2 = ("lzh","地址:bj","买一辆特斯拉9.9包邮")
    2 fz2 = frozenset(lst2)
    3 print(fz2 , type(fz2))#frozenset({'lzh', '地址:bj', '买一辆特斯拉9.9包邮'}) <class 'frozenset'>

    不能够在冰冻集合当中添加或者删除元素

    1 lst2 = ("lzh","地址:bj","买一辆特斯拉9.9包邮")
    2 fz2 = frozenset(lst2)
    3 fz2.add(123) #error 报错 冰冻集合不可添加或删除元素

    只能交差并补

    1 lst2 = ("lzh","地址:bj","买一辆特斯拉9.9包邮")
    2 fz2 = frozenset(lst2)
    3 lst1 = ["lzh",88,"男性","傻逼"]
    4 fz1 = frozenset(lst1)
    5 print( fz1 & fz2 )#frozenset({'lzh'})
    6 print( fz1 - fz2 )#frozenset({88, '傻逼', '男性'})
  • 相关阅读:
    mac 10.15.7 修改PATH
    oc 属性类型一般用法
    ubuntu解压zip文件名乱码
    telnet 退出
    docker 根据容器创建镜像
    mac android adb device 没有显示设备
    Yii2 查看所有的别名 alias
    Yii2 App Advanced 添加 .gitignore
    ubuntu 18.04 搜狗突然就提示乱码
    An error occured while deploying the file. This probably means that the app contains ARM native code and your Genymotion device cannot run ARM instructions. You should either build your native code to
  • 原文地址:https://www.cnblogs.com/Magicianlx/p/13344724.html
Copyright © 2011-2022 走看看