zoukankan      html  css  js  c++  java
  • Python

    集合的简介

    • 集合是一个无序、不重复的序列
    • 它的基本用法包括成员检测和消除重复元素
    • 集合对象也支持像 联合,交集,差集,对称差分等数学运算
    • 集合中所有的元素放在 {} 中间,并用逗号分开

    集合的栗子

    这里会有个重点知识

    # 声明
    basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
    print(basket)
    
    set_ = {1, 1, 1, 1, 2}
    print(set_)
    
    
    # 输出结果
    {'orange', 'pear', 'banana', 'apple'}
    {1, 2}

    自动去重了,每个元素只保留一个,且是无序的

    再来看一个栗子

    set_ = {{1, }, {1, }}
    print(set_)
    
    set_ = {[1, ], [2, ]}
    print(set_)
    
    
    # 输出结果
        set_ = {{1, }, {1, }}
    TypeError: unhashable type: 'set'
    
    
        set_ = {[1, ], [2, ]}
    TypeError: unhashable type: 'list'

    为什么报错?

    重点:因为 set 集合只能包含不可变对象元素,而列表、集合本身都是可变对象,所以会报错

    集合和列表的区别

    • 列表中的元素允许重复,集合中的元素不允许重复
    • 列表是有序的,提供了索引操作,集合是无序的,没有索引操作
    set_ = {1, 1, 1, 1, 2}
    set[1]
    
    
    # 输出结果
        set[1]
    TypeError: 'type' object is not subscriptable

    提示该类型不能下标

    特殊集合

    如何创建一个空集合

    set_ = {}
    print(set_, type(set_))
    
    # 输出结果 {} <class 'dict'>

    不可以直接 { },这样默认是一个空字典哦

    正确写法

    set_ = set()
    print(set_, type(set_))
    
    
    # 输出结果
    set() <class 'set'>

    常见运算操作

    运算符 |

    合并多个集合

    >>> {1, 2} | {3, 4}
    {1, 2, 3, 4}
    >>> {1, 2} | {3, 4} | {5, 6}
    {1, 2, 3, 4, 5, 6}

    运算符 -

    从集合中删除元素

    >>> {1, 2, 3, 4} - {3, 4, 5, 6}
    {1, 2}

    运算符 & 

    取交集,返回两个集合都包含的元素

    >>> {1, 2, 3} & {3, 4, 5}
    {3}

    运算符 ^

    取差集

    >>> {1, 2, 3} ^ {3, 4, 5}
    {1, 2, 4, 5}

    关键字 in

    检查集合中是否包含指定元素

    >>> 'polo' in {'www', 'polo', 'com'}
    True
    >>> 'yy' in {'www', 'yyy', 'com'}
    False

    常见函数

    len(set) 

    获取集合的长度

    >>> len({1, 2, 3})
    3
    >>> len({1, 2, 3, 4})
    4

    max(set) 

    获取集合中最大的元素

    >>> max({1, 2})
    2
    >>> max({1, 3, 2})
    3

    min(set) 

    获取集合中最小的元素

    >>> min({1, 2})
    1
    >>> min({1, 3, 2})
    1

    集合常见方法

    add(item) 

    向集合中新增一个元素 item

    # add
    set_ = {1, 2, 3}
    set_.add(1)
    set_.add(4)
    set_.add("5")
    print(set_)
    
    
    # 输出结果
    {1, 2, 3, 4, '5'}

    remove(item)

    从集合中删除指定元素 item

    # remove
    set_ = {1, 2, 3}
    set_.remove(2)
    print(set_)
    
    
    # 输出结果
    {1, 3}

    clear()

    移除集合中的所有元素

    # remove
    set_ = {1, 2, 3}
    print(set_)
    set_.clear()
    print(set_)
    
    
    # 输出结果
    {1, 2, 3}
    set()

    pop()

    移除集合首位元素,并返回该元素值

    # pop
    a = {1, 2, 3, 4}
    print(a.pop())
    print(a.pop())
    print(a)
    
    
    # 输出结果
    1
    2
    {3, 4}

    difference()

    从源集合中找出目标集合中没有的元素集合

    # difference
    a = {1, 2, 3, 4}
    b = {2, 3, 5}
    print(a.difference(b))
    
    
    # 输出结果
    {1, 4}

      

    union()

    返回两个集合的并集

    # union
    set1 = {1, 2, 3}
    set2 = {3, 4, 5}
    print(set1.union(set2))
    
    
    # 输出结果
    {1, 2, 3, 4, 5}

    intersection()

    返回两个集合的交集

    # intersection
    set1 = {1, 2, 3}
    set2 = {3, 4, 5}
    print(set1.intersection(set2))
    
    
    # 输出结果
    {3}

    issubset() 

    判断指定集合是否为子集

    # issubset
    set1 = {1, 2}
    set2 = {1, 2, 3}
    print(set1.issubset(set2))
    
    
    # 输出结果
    True

    issuperset()

    判断指定集合是否为超集

    # issuperset
    set1 = {1, 2, 3}
    set2 = {1, 2}
    print(set1.issuperset(set2))
    
    
    # 输出结果
    True

    集合总结

    因为集合是不可重复的,所以可以利用它来处理一些需要避免重复插入的场景,比如为了避免某一学生的信息重复录入

  • 相关阅读:
    《全体育&#183;瑜伽》
    PowerDesigner使用教程
    Android基础之——startActivityForResult启动界面并返回数据,上传头像
    数据仓库与数据挖掘的一些基本概念
    php实现求二进制中1的个数(右移、&、int32位)(n = n & (n
    批量发短信的平台浏览总结
    php资源集
    js进阶正则表达式5几个小实例(原样匹配的字符在正则中原样输出)(取反^)
    js进阶正则表达式方括号(方括号作用)(js正则是在双正斜杠之中:/[a-z]/g)
    js进阶正则表达式修饰符(i、g、m)(var reg2=/html/gi)
  • 原文地址:https://www.cnblogs.com/poloyy/p/15083079.html
Copyright © 2011-2022 走看看