zoukankan      html  css  js  c++  java
  • 基本数据类型—set

    一、集合的区别

      1)set是什么?

        set:是一个无序接不重复的元素集合

    >>> s = {11,22,33,44}
    >>> s
    {33, 11, 44, 22}
    

        里面存储元素的顺序并不是按之前定义的顺序,因此不能通过序号去取值

      2)与其它集合区别

        list:允许重复的集合,可修改

        tuple:允许重复的集合,不可修改

        dict:

        set:不允许重复的集合,可修改

    二、set创建

      s = set()

      s = {11,22,33}                      与字典区别:字典是键值对,而set对象都是单个元素

      注:不能用s={}的形式创建空的set对象,s = {} 这样默认创建的是字典类型

    三、set转化

      s = set(可迭代对象)              和 list 的转化很相似,但是转化后的set对象没有重复的元素

    >>> l = [11,222,11,33]
    >>> s = set(l)
    >>> s
    {33, 11, 222}
    >>> a = 'asdasss'
    >>> s1 = set(a)
    >>> s1
    {'s', 'a', 'd'}
    

    四、set 提供的功能

      add:添加一个元素到集合里

      clear:清空集合

      copy:浅拷贝

      difference:找出两个或多个集合中不同元素,将这些元素组成一个新的集合并返回这个新的集合。如: A.difference(B) 返回A中间有B没有的元素的jihe

    >>> s1 = {1,2,3,4}
    >>> s2 = {1,2,3}
    >>> s3 = {1,2}
    >>> s1.difference(s3)
    {3, 4}
    >>> s1.difference(s3,s2)
    {4}
    

      difference_update:移除相同到的元素。如: A.difference_update(B)  从A中移除B中存在的元素

    >>> s1 = {1,2,3,4}
    >>> s2 = {1,2,3}
    >>> s1.difference_update(s2)
    >>> s1
    {4}
    

      discard:移除元素(根据值来移除元素,若值不存在不报错)

    >>> s1 = {1,2,3,4}
    >>> s1.discard(4)
    >>> s1
    {1, 2, 3}
    >>> s1.discard(5)
    >>> s1
    {1, 2, 3}
    

      remove:移除元素(根据值来移除元素,若值不存在报错)

    >>> s1 = {1,2,3,4}
    >>> s1.remove(4)
    >>> s1
    {1, 2, 3}
    >>> s1.remove(5)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 5
    

      intersection:返回两个或多个集合的交集

    >>> s1 = {1,2,3,4}
    >>> s2 = {1}
    >>> s3 = {1,2}
    >>> s1.intersection(s2,s3)
    {1}
    

      intersection_update:将集合的交集赋给调用这个方法的集合

    >>> s1 = {1,2,3,4}
    >>> s2 = {1}
    >>> s3 = {1,2}
    >>> s1.intersection_update(s2,s3)
    >>> s1
    {1}
    

      isdisjoin:判断是否无交集,若没有交集返回True,反之返回False

    >>> s1 = {1,2,3,4}
    >>> s2 = {1}
    >>> s1.isdisjoint(s2)
    False
    >>> s4 = {5}
    >>> s1.isdisjoint(s4)
    True
    

      issubset:判断是不是子集合

      issuperste:判断是不是父集合

    >>> s1 = {1,2,3,4}
    >>> s2 = {1,2}
    >>> s1.issubset(s2)
    False
    >>> s1.issuperset(s2)
    True
    

      pop:随机移除一个元素(arbitrary  武断的,在这里表示随机的)

      symmetric_difference:返回两个集合中除交集以外的所有元素

    >>> s2 = {1,2,5}
    >>> s1 = {1,2,3,4}
    >>> s1.symmetric_difference(s2)
    {3, 4, 5}
    >>> s1.difference(s2)
    {3, 4}
    >>> s2.difference(s1)
    {5}
    

      symmetric_difference_update:将交集以外的所有元素赋给调用这个方法的集合

    >>> s2 = {1,2,5}
    >>> s1 = {1,2,3,4}
    >>> s1.symmetric_difference_update(s2)
    >>> s1
    {3, 4, 5}
    

      union:返回集合的并集

    >>> s2 = {1,2,5}
    >>> s1 = {1,2,3,4}
    >>> s1.union(s2)
    {1, 2, 3, 4, 5}
    

      update:批量添加元素,后面的参数要是可迭代的

    >>> s1
    {1, 2, 3, 4}
    >>> s1.update('789')
    >>> s1
    {1, 2, 3, 4, '7', '9', '8'}
    

      

     

  • 相关阅读:
    LeetCode 258 Add Digits
    LeetCode 231 Power of Two
    LeetCode 28 Implement strStr()
    LeetCode 26 Remove Duplicates from Sorted Array
    LeetCode 21 Merge Two Sorted Lists
    LeetCode 20 Valid Parentheses
    图形处理函数库 ImageTTFBBox
    php一些函数
    func_get_arg(),func_get_args()和func_num_args()的用法
    人生不是故事,人生是世故,摸爬滚打才不会辜负功名尘土
  • 原文地址:https://www.cnblogs.com/tandonghao/p/9151441.html
Copyright © 2011-2022 走看看