zoukankan      html  css  js  c++  java
  • 字典相关函数/集合相关的操作 (交差并补)

    一 字典相关函数

    dic = {}
    dic["top"] = "廉颇"
    dic["middle"] = "妲己"
    dic["bottom"] = "孙尚香"
    print(dic)

    1.fromkeys()  使用一组键和默认值创建字典 (快速定义字典)

    lst = ["a","b",'c']
    # fromkeys(塞满键的容器,默认值)
    dic = {}.fromkeys(lst,None)
    print(dic) # {'a': None, 'b': None, 'c': None}

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

    dic = {'top': '廉颇', 'middle': '妲己', 'bottom': '孙尚香',"jungle":"猴子","support":"小明"}
    # 指定键删除对应的键值对
    res = dic.pop("jungle")
    # 若没有该键可设置默认值,预防报错
    res = dic.pop("middle123434","抱歉,该键不存在")
    print(res)
    print(dic)

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

    dic = {'top': '廉颇', 'middle': '妲己', 'bottom': '孙尚香',"jungle":"猴子","support":"小明"}
    res = dic.popitem()
    print(res)
    print(dic)

    3.clear()  清空字典

    dic.clear()
    print(dic)

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

    dic =  {'top': '廉颇', 'middle': '妲己', 'bottom': '孙尚香'}
    
    # 没该键就添加
    dic_new = {"support":""}
    dic.update(dic_new)
    print(dic)
    
    # 有该键就更新
    dic_new = {'middle': '武则天'}
    dic.update(dic_new)
    print(dic)
    
    # 额外的用法(了解)
    dic.update(middle="甄姬",jungle="刘备")
    print(dic)

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

    dic =  {'top': '廉颇', 'middle': '妲己', 'bottom': '孙尚香'}
    res = dic.get("top123")
    res = dic.get("top123","抱歉,改键不存在")
    # res = dic["top"]
    print(res)

    其他相关方法

    #keys()   将字典的键组成新的可迭代对象
    dic =  {'top': '廉颇', 'middle': '妲己', 'bottom': '孙尚香'}
    res = dic.keys()
    print(res , type(res))
    
    #values() 将字典中的值组成新的可迭代对象
    res = dic.values()
    print(res , type(res))
    
    #items()  将字典的键值对凑成一个个元组,组成新的可迭代对象 
    res = dic.items()
    print(res , type(res))
    """
    dict_items(
    [
        ('top', '廉颇'), 
        ('middle', '妲己'), 
        ('bottom', '孙尚香')]
    ) 
    
    <class 'dict_items'>
    """
    
    for k,v in dic.items():
        print(k,v)

    二. 集合相关的操作(交叉并补)

    set1 = {"郭杰瑞","药水哥","张大仙","王文"}
    set2 = {"蔡徐坤","王力宏","郭德纲","王文"}

    1.交集

    res = set1.intersection(set2)
    print(res)
    
    # 简写 
    res = set1 & set2
    print(res)

    2.差集

    res = set1.difference(set2)
    print(res)
    
    # 简写 
    res = set1 - set2
    print(res)

    3.union 并集

    res = set1.union(set2)
    print(res)
    
    # 简写 
    res = set1 | set2
    print(res)

    4.symmetric_difference

    res = set1.symmetric_difference(set2)
    print(res)
    
    # 简写 
    res = set1 ^ set2
    print(res)

    set1 = {"王文","王宝强","王健林","王思聪"}
    set2 = {"王文","王宝强"}

    5.issubset()   判断是否是子集

    res = set2.issubset(set1)
    print(res)

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

    6. issuperset() 判断是否是父集

    res = set1.issuperset(set2)
    print(res)
    
    # 简写
    res = set1 > set2
    print(res)

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

    set1 = {"王文","王宝强","王健林","王思聪"}
    set2 = {"王文","王宝强"}
    res = set1.isdisjoint(set2)
    print(res)

    集合相关的方法

    setvar = {"周润发"}
    # 1.一次加一个
    #add()    向集合中添加数据
    setvar.add("周星驰")
    setvar.add("周树人")
    print(setvar)
    
    # 2.一次加一堆
    #update() 迭代着增加
    setvar = {"马诺"}
    lst = ["马蓉","马化腾","马户","马云","码农"]
    lst = "abc"
    setvar.update(lst)
    print(setvar)

    setvar = {'张大仙', '郭杰瑞', '药水哥', '郭德纲', '蔡徐坤', '王力宏'}

    1clear()   清空集合

    # setvar.clear()
    # print(setvar)

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

    # res = setvar.pop()
    # print(res)
    # print(setvar)

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

    setvar.discard("郭杰瑞")
    setvar.discard("郭杰瑞11122333")
    print(setvar)

    冰冻集合 (扩展)

    """冰冻集合一旦创建,不能在进行任何修改,只能做交叉并补操作"""
    # frozenset 可强转容器类型数据变为冰冻集合
    lst = ["马蓉","马化腾","马户","马云","码农"]
    fz = frozenset(lst)
    print(fz,type(fz))
    
    
    fz1 = frozenset( {"马蓉","马化腾"} ) 
    fz2 = frozenset( {"马化腾","马户"} )
    
    # 只能做交叉并补操作
    res = fz1 & fz2
    print(res)
    # 可以做添加操作么? 不可以
    fz1.add("abc")
  • 相关阅读:
    被忽视的调试工具Swagger
    MongoDB操作
    js获取当月第一天和最后一天
    vue中 关于$emit的用法
    map和flatmap的区别
    element 的el-dialog 浮层嵌套,第二次弹出的会被遮住
    el-table加背景色
    java 正则表达式匹配
    Python自动化测试 (七)logging 日志模块
    git安装配置与使用
  • 原文地址:https://www.cnblogs.com/whc6/p/14057565.html
Copyright © 2011-2022 走看看