zoukankan      html  css  js  c++  java
  • 数据类型之集合

    一、集合介绍:

      集合用于包含一组无序的对象。与列表和元组不同,集合是无序的,也无法通过数字进行索引。此外,集合中的元素不能重复。

      简单总结:

        不重复,(互异性),也就是说集合是天生去重的
        元素为不可变对象,(确定性,元素必须可hash)
        集合的元素没有先后之分,(无序性)

    二、集合的简单操作

    1.通过函数进行转换:
        nums = [1,2,3,4,5,6,7]
        num_set = set(nums)
    2.直接定义集合:
        set_list = set()
    
    3.增:
    1.传入的内容当做一个整体放入集合中:
        set_list.add('add')
    2.传入的元素拆分,做为个体传入到集合中
        set_list.update('updata')
    4.删 :
    remove:如果有,直接删除;如果没有,程序报错
        set_list.remove('add')
    5.该:不可变类型无法修改元素
    6.查:无法通过下标索引
    7.交集:
    1.(&2.函数:intersection
        示例:
            list1 = set('jiangfeng')
            list2 = set('shanfeng')
            list3 = list1 & list2
            print(list3)
            list4 = list1.intersection(list2)
            print(list4)
        结果:
            {'a', 'n', 'f', 'e', 'g'}
            {'a', 'n', 'f', 'e', 'g'}
    8.并集:
    1.(|2.函数:union
        例:
            list1 = set('jiangfeng')
            list2 = set('shanfeng')
            list3 = list1 | list2
            print(list3)
            list4 = list1.union(list2)
            print(list4)
        结果:
            {'n', 'a', 'i', 'h', 'g', 'f', 's', 'e', 'j'}
            {'n', 'a', 'i', 'h', 'g', 'f', 's', 'e', 'j'}
    9.差集:
    1:(-2.函数:difference
        例;
            list1 = set('jiangfeng')
            list2 = set('shanfeng')
            list3 = list1 - list2
            print(list3)
            list4 = list2.difference(list1)
            print(list4)
        结果:
            {'j', 'i'}
            {'s', 'h'}
    10.对称差集:
    1:(^2:函数:
        例;
            list1 = set('jiangfeng')
            list2 = set('shanfeng')
            list3 = list1 ^ list2
            print(list3)
            list4 = list1.symmetric_difference(list2)
            print(list4)
        结果:
            {'s', 'j', 'h', 'i'}
            {'s', 'j', 'h', 'i'}
    11.集合转换:
    例:
        list1 = set('jiangfeng')
        list = list(list1)
        tuple = tuple(list1)
        str = str(list1)
        print(list,type(list))
        print(tuple,type(tuple))
        print(str,type(str))
    结果:
        ['e', 'a', 'n', 'g', 'j', 'i', 'f'] <class 'list'>
        ('e', 'a', 'n', 'g', 'j', 'i', 'f') <class 'tuple'>
        {'e', 'a', 'n', 'g', 'j', 'i', 'f'} <class 'str'>

    三、集合的方法:

    add()                            #将元素添加到集合中
    clear()                            #删除集合中的所有元素
    copy()                            #返回集合的浅拷贝
    difference()                    #将两个或多个集合的差集作为一个新集合返回
    difference_update()                #从这个集合中删除另一个集合的所有元素
    discard()                        #删除集合中的一个元素(如果元素不存在,则不执行任何操作)
    intersection()                    #将两个集合的交集作为一个新集合返回
    intersection_update()            #用自己和另一个的交集来更新这个集合
    isdisjoint()                    #如果两个集合有一个空交集,返回 True
    issubset()                        #如果另一个集合包含这个集合,返回 True
    issuperset()                    #如果这个集合包含另一个集合,返回 True
    pop()                            #删除并返回任意的集合元素(如果集合为空,会引发 KeyError)
    remove()                        #删除集合中的一个元素(如果元素不存在,会引发 KeyError)
    symmetric_difference()            #将两个集合的对称差作为一个新集合返回
    symmetric_difference_update()    #用自己和另一个的对称差来更新这个集合
    union()                            #将集合的并集作为一个新集合返回
    update()                        #用自己和另一个的并集来更新这个集合
  • 相关阅读:
    #Leetcode# 700. Search in a Binary Search Tree
    很多很多书上代码
    #Leetcode# 104. Maximum Depth of Binary Tree
    #Leetcode# 12. Integer to Roman
    PAT-2018年冬季考试-乙级
    PAT 1035 插入与归并
    PAT 1058 选择题
    PAT 1052 卖个萌
    CodeForces Round #521 (Div.3) E. Thematic Contests
    2017Nowcoder Girl初赛重现赛
  • 原文地址:https://www.cnblogs.com/feng0919/p/10079837.html
Copyright © 2011-2022 走看看