Python 集合

集合

集合 set
        集合是可变容器
        集合内的数据对象是唯一的(只有一个)
        集合是无序的存储结构,集合中的数据没有先后关系
        集合内的元素必须是不可变对象
        集合是可迭代对象
        集合是相当于只有键没有值的字典(键则是集合的数据)

    创建空集合
        s = set()

    创建非空集合
        s = {1, 2, 3}
        s = {3.14, True, (1970, 1, 1), 'hello'}

    集合的构造函数 set
        set()
        set(iterable)

    示例:
        s = {1, 3, 5, 7}
        s = set('ABC')
        s = set('ABCCBA')
        s = set({1: '1', 2: '2', 5: '5'})
        s = set([1, 0, 3.14, 'hello'])
        s = set(('abc', '123', True))

    集合的运算:
        交集,并集,补集,子集,超集

        s1 = {1, 2, 3}
        s2 = {2, 3, 4}

        & 生成两个集合的交集
            "同时存在于两个集合中的元素"
            s1 & s2 -> {2, 3} 
            
        | 生成两个集合的并集
            “两个集合的所有元素”
            s1 | s2 -> {1, 2, 3, 4}
            
        ^ 生成两个集合的对称补集
            "去掉同时存在于两个集合中的元素,返回剩下的所有元素"
            s1 ^ s2 -> {1, 4} 
            
        - 生成两个集合的补集
            “去掉同时存在与两个集合中的元素,返回第一个集合中剩下的元素”
            s1 - s2 -> {1} 
            s2 - s1 -> {4} 

        > 判断一个集合是否是另一个集合的超集
        < 判断一个集合是否是另一个集合的子集
            s1 = {1, 2, 3}
            s2 = {2, 3}
            s1 > s2 -> True
            s1 < s2 -> False
# sets.py 集合练习
manager = {'John', 'Tom', 'Mike'}
tech = {'John', 'Mike', 'Ana', 'Oda'}

print(manager & tech)  # both manager and tech  
print(manager - tech)  # manager but not tech
print(tech - manager)  # tech but not manager
print('Ana' in manager)  # is Ana a manager?
print(manager ^ tech)  # who only plays one role?
print(len(manager | tech))  # how many employees
Resistance is Futile!
原文地址:https://www.cnblogs.com/noonjuan/p/11168400.html