• [Python] 集合操作及方法总结


    集合(set)是一个无序不重复元素序列(set可以看成数学意义上的无序和无重复元素的集合)

    1.创建集合

    我们可以使用大括号{}或者set()函数创建集合

    提示Tips:创建一个空集合必须用set()而不是{ },因为{ }是用来创建一个空字典

    1. # 创建一个空集合
    2. aSet = set()
    3. print(aSet) # set()
    1. # 创建多个元素的集合
    2. bSet = set([1,1,2,3,4,5,5])
    3. # {1, 2, 3, 4, 5}
    4. print(bSet)
    5. cSet = {1,1,2,3,4,5,5}
    6. # {1, 2, 3, 4, 5}
    7. print(cSet)

    使用集合set可达到去重的效果(重复元素在set中自动被过滤)

    2.集合常见操作方法 

    2.1添加单个元素

    add()将元素添加到集合set中,如果元素已经存在,则add()不会添加该元素

    1. aSet = set([1,2,1,3])
    2. print(aSet) # {1, 2, 3}
    3. # add()添加单个元素
    4. aSet.add(4)
    5. print(aSet) # {1, 2, 3, 4}
    6. aSet.add(1)
    7. print(aSet) # {1, 2, 3, 4}

    2.2添加多个元素

    update()用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略(可以添加多个元素,且参数可以是列表,元组,字典等)

    1. aSet = set([1,2,1,3])
    2. print(aSet) # {1, 2, 3}
    3. # update()添加多个元素
    4. aSet.update([4,5])
    5. aSet.update((5,6))
    6. aSet.update({6,7})
    7. print(aSet) # {1, 2, 3, 4, 5, 6, 7}
    1. a = {"apple", "banana", "cherry"}
    2. b = {"google", "microsoft", "apple"}
    3. a.update(b)
    4. # {'google', 'apple', 'cherry', 'banana', 'microsoft'}
    5. print(a)

    2.3移除元素

    remove()将指定元素从集合set中移除,如果元素不存在,则会报错

    1. aSet = set([1,2,1,3])
    2. print(aSet) # {1, 2, 3}
    3. # remove()移除元素
    4. aSet.remove(3)
    5. print(aSet) # {1, 2}
    6. # 报错,KeyError: 4
    7. aSet.remove(4)

    discard()删除集合中指定的元素,如果元素不存在,不会报错

    1. aSet = set([1,2,1,3])
    2. print(aSet) # {1, 2, 3}
    3. # discard()移除元素
    4. aSet.discard(3)
    5. print(aSet) # {1, 2}
    6. aSet.discard(4)
    7. print(aSet) # {1, 2}

    2.4计算集合元素个数

    len()用于计算集合中元素的个数

    1. aSet = set([1,2,1,3])
    2. print(aSet) # {1, 2, 3}
    3. # len()计算集合元素个数
    4. print(len(aSet)) # 3

    2.5清空集合 

    clear()用于清空指定的集合(移除集合中的所有元素)

    1. aSet = set([1,2,1,3])
    2. print(aSet) # {1, 2, 3}
    3. # clear()清空集合
    4. aSet.clear()
    5. print(aSet) # set()

    2.6判断元素是否在集合中

    in判断指定元素是否在集合set中,存在则返回True,不存在则返回False

    1. aSet = set([1,2,1,3])
    2. print(aSet) # {1, 2, 3}
    3. # in判断指定元素是否在集合set中
    4. 2 in aSet # True
    5. 4 in aSet # False

    扩展:not in判断指定元素是否不在集合set中

    1. aSet = set([1,2,1,3])
    2. print(aSet) # {1, 2, 3}
    3. # not in判断指定元素是否不在集合set中
    4. 2 not in aSet # False
    5. 4 not in aSet # True

    2.7拷贝集合 

    copy()用于拷贝一个集合

    1. aSet = set([1,2,1,3])
    2. print(aSet) # {1, 2, 3}
    3. # copy()用于拷贝集合
    4. bSet = aSet.copy()
    5. print(bSet) # {1, 2, 3}

    2.8集合交集/并集/差集 

    intersection()返回集合的交集

    union()返回两个集合的并集

    difference()返回多个集合的差集

    1. aSet = set('aabc')
    2. print(aSet) # {'a', 'b', 'c'}
    3. bSet = set('bbcd')
    4. print(bSet) # {'b', 'c', 'd'}
    5. # 使用intersection求aSet与bSet的交集
    6. aSet.intersection(bSet) # {'b', 'c'}
    1. aSet = set('aabc')
    2. print(aSet) # {'a', 'b', 'c'}
    3. bSet = set('bbcd')
    4. print(bSet) # {'b', 'c', 'd'}
    5. # 使用union求aSet与bSet的并集
    6. aSet.union(bSet) # {'a', 'b', 'c', 'd'}
    1. aSet = set('aabc')
    2. print(aSet) # {'a', 'b', 'c'}
    3. bSet = set('bbcd')
    4. print(bSet) # {'b', 'c', 'd'}
    5. # 使用difference求aSet与bSet的差集
    6. aSet.difference(bSet) # {'a'}
    7. bSet.difference(aSet) # {'d'}

    扩展补充知识

    求两个list列表的交集、并集与差集https://blog.csdn.net/Hudas/article/details/126365642

  • 相关阅读:
    详细介绍iutils.dll是什么组件
    归并排序与非比较排序详解
    挑战10个最难回答的Java面试题(附答案)
    AVL树C++实现——高度平衡二叉搜索树
    传奇开服教程——传奇微端架设教程-GEE引擎
    Rollup failed to resolve import
    wireshark 流量抓包例题重现
    【3D建模制作技巧分享】用3dsmax制作炫酷的机器人模型
    Linux——ansible剧本
    Mysql Order单条记录出现在两页
  • 原文地址:https://blog.csdn.net/Hudas/article/details/126728615