• 集合


    集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:

      去重,把一个列表变成集合,就自动去重了。

      关系测试,测试两组数据之前的交集、差集、并集等关系

    一、集合的创建。

    set1 = {'1','alex',2,True,2,'alex'}
    print(set1)

    输出:

    {'alex', 2, True, '1'}

    创建:

    set1 = {1,2,3}
    set2 = set({1,2,'barry'})
    print(set1,set2)

    输出:

    {1, 2, 3} {1, 2, 'barry'}

    错误创建:

    set1 = {'1','alex',2,True,[1,2,3]} # 报错,元素有列表类型
    set2 = {'1','alex',2,True,{1:2}}  # 报错,元素有字典类型
    set3 = {'1','alex',2,True,(1,2,[2,3,4])}  # 报错,元素有列表类型

    二、集合的应用(去重)

      将列表内的元素去重:

    l = [1,1,2,2,3,4,5,5]
    set1 = set(l)
    print(set1)
    l1 = list(set1)
    print(l1)

    输出:

    {1, 2, 3, 4, 5}
    [1, 2, 3, 4, 5]

    集合的增:

    第一种方法:(.add(新的内容))

    set1 = {'alex','wusir','ritian','egon','barry'}
    set1.add("景女神")
    print(set1)

    输出:

    {'barry', 'alex', 'ritian', 'egon', '景女神', 'wusir'}

    第二种方法:(update:迭代着增加)

    set1 = {'alex','wusir','ritian','egon','barry'}
    set1.update('A')
    print(set1)

    输出:

    {'alex', 'A', 'barry', 'wusir', 'ritian', 'egon'}
    set1 = {'alex','wusir','ritian','egon','barry'}
    set1.update('老师')
    print(set1)

    输出:

    {'alex', 'barry', '', 'egon', '', 'wusir', 'ritian'}
    set1 = {'alex','wusir','ritian','egon','barry'}
    set1.update([1,2,3])
    print(set1)

    输出:

    {1, 2, 'egon', 3, 'alex', 'barry', 'wusir', 'ritian'}

    集合的删:

    set1 = {'alex','wusir','ritian','egon','barry'}
    
    set1.remove('alex')  # 删除一个元素
    print(set1)
    
    set1.pop()  # 随机删除一个元素
    print(set1)
    
    set1.clear()  # 清空集合
    print(set1)
    
    del set1  # 删除集合
    print(set1)

    集合的其他操作:
    交集。(&  或者 intersection)

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 & set2)  # {4, 5}
    print(set1.intersection(set2))  # {4, 5}

    并集。(| 或者 union)

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 | set2)  # {1, 2, 3, 4, 5, 6, 7}
    
    print(set2.union(set1))  # {1, 2, 3, 4, 5, 6, 7}

    差集。(- 或者 difference)

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 - set2)  # {1, 2, 3}
    print(set1.difference(set2))  # {1, 2, 3}

    反交集。 (^ 或者 symmetric_difference)

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}
    print(set1.symmetric_difference(set2))  # {1, 2, 3, 6, 7, 8}

    子集与超集。

    set1 = {1,2,3}
    set2 = {1,2,3,4,5,6}
    
    print(set1 < set2)
    print(set1.issubset(set2))  # 这两个相同,都是说明set1是set2子集。
    
    print(set2 > set1)
    print(set2.issuperset(set1))  # 这两个相同,都是说明set2是set1超集。

    frozenset不可变集合,让集合变成不可变类型。

    s = frozenset('barry')
    print(s,type(s))  # frozenset({'a', 'y', 'b', 'r'}) <class 'frozenset'>
  • 相关阅读:
    从句分析
    artDialog ( v 6.0.2 ) content 参数引入页面 html 内容
    Java实现 LeetCode 13 罗马数字转整数
    Java实现 LeetCode 13 罗马数字转整数
    Java实现 LeetCode 13 罗马数字转整数
    Java实现 LeetCode 12 整数转罗马数字
    Java实现 LeetCode 12 整数转罗马数字
    Java实现 LeetCode 12 整数转罗马数字
    Java实现 LeetCode 11 盛最多水的容器
    Java实现 LeetCode 11 盛最多水的容器
  • 原文地址:https://www.cnblogs.com/biluo/p/7745204.html
Copyright © 2020-2023  润新知