• pythonday5字典,集合相关方法


    # ### 字典相关的函数
    # 增
    # 传统添加键值对 (推荐)
    dic = {}
    dic["top"] = "the shy"
    dic["middle"] = "rookie"
    dic["bottom"] = "jacklelove"
    print(dic)

    #fromkeys() 使用一组键和默认值创建字典
    lst = ["top","middle","bottom"] # 把所有键放到列表中
    dic = {}.fromkeys(lst,None) # 把列表中的每个键都赋值None进行初始化,形成字典
    print(dic) # 快读批量创建字典的键值对

    # 注意点
    """字典中的三个键所指向的列表是同一个 , 不推荐"""
    dic = {}.fromkeys(lst,[])
    print(dic)
    dic["top"].append(1)
    print(dic)
    # 改写
    """
    duc["top"] = []
    duc["middle"] = []
    duc["bottom"] = []
    """

    # 删
    dic = {'top': 'the shy', 'middle': 'rookie', 'bottom': 'jacklelove'}
    #pop() 通过键去删除键值对 (若没有该键可设置默认值,预防报错)
    res = dic.pop("top")
    print(res)
    print(dic)

    # 当获取不存在的键时,直接报错
    # res = dic.pop("top111222334")
    # 可以为不存在的键设置默认值,防止报错
    res = dic.pop("top111222334","字典中没有这个键")
    print(res)

    #popitem() 删除最后一个键值对
    print("<===>")
    dic = {'top': 'the shy', 'middle': 'rookie', 'bottom': 'jacklelove'}
    res = dic.popitem()
    print(res)
    print(dic)

    #clear() 清空字典
    dic.clear()
    print(dic)


    #改
    dic = {'top': 'the shy', 'middle': 'rookie', 'bottom': 'jacklelove'}
    # update() 批量更新(有该键就更新,没该键就添加)
    dic_new = {"top":"wangwen","support":"神秘男孩","jungle":"xboyww"}
    dic.update(dic_new)
    print(dic)

    #查
    #get() 通过键获取值(若没有该键可设置默认值,预防报错)
    # res = dic["top"]
    # res = dic["top13224234"] error
    # print(res)
    # get可以预防报错,返回None
    res = dic.get("top")
    # 可以为不存在的键,设置默认值以做提示
    res = dic.get("top13224234","该键不存在")
    print(res)

    dic = {"ssy":"睡觉","hqx":"喝酒","ww":"走神","cy":"溜号","zjw":"脑子快"}
    #keys() 将字典的键组成新的可迭代对象
    res = dic.keys()
    print(res)

    #values() 将字典中的值组成新的可迭代对象
    res = dic.values()
    print(res)

    #items() 将字典的键值对凑成一个个元组,组成新的可迭代对象
    res = dic.items()
    print(res)

    for k,v in dic.items():
    print( k,v)

    # ### 集合的相关操作
    set1 = {"周杰伦","李宇春","赵忠祥"}
    set2 = {"易烊千玺","掏粪男孩","这就是街舞","赵忠祥"}
    # 交集 intersection
    res = set1.intersection(set2)
    print(res)

    # 简写符号 &
    res = set1 & set2
    print(res)

    # 差集
    res = set1.difference(set2)
    print(res)

    # 简写符号 -
    res = set1 - set2
    print(res)

    #union() 并集
    res = set1.union(set2)
    print(res)

    # 简写符号 |
    res = set1 | set2
    print(res)

    # 对称差集 symmetric_difference
    res = set1.symmetric_difference(set2)
    print(res)

    # 简写符号 ^
    res = set1 ^ set2
    print(res)


    set1 = {"周杰伦","李宇春","赵忠祥"}
    set2 = {"周杰伦","李宇春"}
    #issubset() 判断是否是子集
    res = set1.issubset(set2)
    print(res,"<====>")

    # 简写符号 <
    res = set1 <= set2
    print(res)

    #issuperset() 判断是否是父集
    res = set1.issuperset(set2)
    print(res,"<=====>")
    res = set1 >= set2
    print(res)

    #isdisjoint() 检测两集合是否不相交 不相交 True 相交False
    res = set1.isdisjoint(set2)
    print(res)

    # ### 集合相关的函数
    setvar = {"唐人街探案3"}
    # 增
    #add() 向集合中添加数据 (一次只加一个)
    setvar.add("姜子牙")
    print(setvar)

    #update() 迭代着增加(一次加一堆)
    lst = ["隔壁姐姐家的爱情故事","关于摄像头如何安装不被别人发现","论跑路的重要性"]
    setvar.update(lst)
    print(setvar)

    # 删
    #clear() 清空集合
    setvar.clear()
    print(setvar)

    #pop() 随机删除集合中的一个数据
    setvar = {'唐人街探案3', '姜子牙', '关于摄像头如何安装不被别人发现'}
    res = setvar.pop()
    print(res)

    #remove() 删除集合中指定的值(不存在则报错)
    setvar = {'唐人街探案3', '姜子牙', '关于摄像头如何安装不被别人发现'}
    setvar.remove("姜子牙")
    # setvar.remove("姜子牙112") 不存在的直接删除会报错
    print(setvar)

    #discard() 删除集合中指定的值(不存在的不删除 ) 推荐使用
    setvar = {'唐人街探案3', '姜子牙', '关于摄像头如何安装不被别人发现'}
    # setvar.discard("姜子牙")
    setvar.discard("姜子牙112") # 不存在的值不删除,不会报错
    print(setvar)


    # ### 冰冻集合 frozenset (了解)
    """冰冻集合只能做交叉并补,不能做增删相关的操作"""
    setvar1 = ("a","b")
    setvar2 = ("b","c")

    # 冰冻集合只能做交叉并补
    fz1 = frozenset(setvar1)
    fz2 = frozenset(setvar2)
    res = fz1 & fz2
    print(res)

    # 不能做增删相关的操作
    # fz1.add("zzzs") error

  • 相关阅读:
    java中重载与重写的区别
    Java中数组的初始化方式
    break和continue的区别
    do while 循环和while循环的区别
    Java注释分类
    Java中的switch语句后面的控制表达式的数据类型
    DBA_TABLES之BLOCKS AND EMPTY_BLOCKS
    show_space 脚本
    Linux 6 配置multipath
    环保创业的可行之道——Leo鉴书上66
  • 原文地址:https://www.cnblogs.com/liucx/p/16273818.html
Copyright © 2020-2023  润新知