• 技术文章 >后端开发 >Python教程

    python中set不常用吗

    anonymityanonymity2019-06-14 09:51:22原创887
    set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key

    set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

    set 语法:

    class set([iterable])

    参数说明:iterable -- 可迭代对象对象;

    set集合,是一个无序且不重复的元素集合#set是一个无序且不重复的元素集合

    s1=set()
    s1.add("alex")
    s1.add("eric")
    print(s1)
    #访问速度快
    #天生解决了重复问题
    ll=[1,2,3,4,5,6,3,2,1]
    s2=set(ll)
    print("转换后的集合为:",s2)
    #去除相同项,生成一个新的集合,删除
    s3=s2.difference([1,2,3,11])
    print("s2不变:",s2)
    print("观察是否生成一个新的集合s3:",s3)
    s4=s2.difference_update([3,4,5,11])  #删除所有包含在新集合中的元素,并生成一个新的集合
    print("是否改变原集合s2:",s2)
    print("是否生成新集合s4:",s4)
    ret=s2.pop()   #取出元素,并赋值给ret
    print("移除s2中的一个元素",s2)
    print("测试pop是否有返回值,移除的元素是:",ret)
    ret1=s2.remove(2)  #必须带参数且没有返回值
    print("移除s2中的一个元素:",s2)
    print("测试remove是否有返回值:",ret1)
    #练习
    # 数据库中原有
    old_dict = {
        "#1":{ 'hostname':"c1", 'cpu_count': 2, 'mem_capicity': 80 },
        "#2":{ 'hostname':"c1", 'cpu_count': 2, 'mem_capicity': 80 },
        "#3":{ 'hostname':"c1", 'cpu_count': 2, 'mem_capicity': 80 }
    }
    # cmdb 新汇报的数据
    new_dict = {
        "#1":{ 'hostname':"c2", 'cpu_count': 2, 'mem_capicity': 800 },
        "#3":{ 'hostname':"c2", 'cpu_count': 2, 'mem_capicity': 80 },
        "#4":{ 'hostname':"c2", 'cpu_count': 2, 'mem_capicity': 80 }
    }
    """
    分析:
    1、新有,原来无→新加入
    2、新有,原来有→更新
    3、新无,原来有→原来删除
    使用set的交集和差集来计算
    old_dict.keys()
    new_dict.keys()
    交集(更新):要更新的数据
    差集(删除):old_dict.keys()--交集
    差集(添加):new_dict.keys()--交集
    """
    old=set(old_dict.keys())
    new=set(new_dict.keys())
    up_set=old.intersection(new)   #需要更新的集合
    del_set=old.symmetric_difference(up_set)   #需要删除的集合
    add_set=new.symmetric_difference(up_set)   #需要添加的集合

    以上就是python中set不常用吗的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python
    上一篇:如何用python画笑脸 下一篇:python如何判断一个数是整数
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• python中字典是有序的吗• python招聘要求高吗• python市场需求量大吗• 女生学python难吗
    1/1

    PHP中文网