zoukankan      html  css  js  c++  java
  • python之集合【set】

    初学python,今天晚上学习了set,做下set的总结,set的中文名也就是【集合】,set的总结分为两部分,第一部分是set的创建,第二部分是set的操作,也就是set的功能;set的特点是无序的,但是是会天然去重的;

    第一部分:创建set

    方法1:用大括号来创建set

    #用大括号创建集合
    s1 = {'123','abc'}
    print(type(s1))
    print(s1)


    <type 'set'>
    set(['123', 'abc'])

    方法2:直接用set创建,但是这是创建了一个空的集合

    创建一个空的集合

    s2 = set()
    print(type(s2))
    print(s2)

    <type 'set'>
    set([])

    方法3;可以把一个列表转换为集合

    li =[11,22,33,44,33]
    s3 = set(li)
    print(type(s3))
    print(s3)


    <type 'set'>
    set([33, 11, 44, 22])

    第二部,set的操作功能

    # add,给集合【set】添加一个元素,注意add一次只能添加一个元素
    s1 = set()
    s1.add(123)
    print(s1)

    结果

    set([123])

    #clear,清空一个集合【set】
    s1.clear()
    print(s1)

    结果

    set([123])
    set([])

    #difference,显示集合a存在,但是集合b不存在的元
    a = {'a','b','c','d','e'}
    b = {'a','b','c','d','f','g'}
    c = a.difference(b)
    print(c)

    结果

    set(['e'])

    #symmetric_difference,显示集合a和集合b中的不同的元素

    a = {'a','b','c','d','e'}
    b = {'a','b','c','d','f','g'}
    c = a.symmetric_difference(b)
    print(c)

    结果
    set(['e', 'g', 'f'])

    #difference_update,把集合a中存在,但是不在集合b中的元素更新到集合a中

    a = {'a','b','c','d','e'}
    b = {'a','b','c','d','f','g'}
    a.difference_update(b)
    print(a)

    结果
    set(['e'])

    #discard移除元素,如果集合中存在该元素,则会移除,如果集合中不存在该元素,也不报错

    a = {'a','b','c','d','e'}
    a.discard('a')
    print(a)
    a.discard('aaa')
    print(a)

    结果
    set(['c', 'b', 'e', 'd'])
    set(['c', 'b', 'e', 'd'])

    #remove,移除元素,如果不存在,则会报错

    a = {'a','b','c','d','e'}
    a.remove('e')
    print(a)
    a.remove('1')

    结果
    set(['a', 'c', 'b', 'd'])
    File "E:/ѧϰ/python/day6/set2.py", line 43, in <module>
    a.remove('1')
    KeyError: '1'

    #pop,移除元素,但是不能指定移除哪个元素,是随机的,移除的值我们可以用另外一个变量来接收

    f = {'a','b','c','d'}
    g = f.pop()
    print(f)
    print(g)

    结果
    set(['c', 'b', 'd'])
    a

     

    #intersection,或者集合a和集合b的交集,并赋值给另外一个集合c

    a = {'11','22','33','44'}
    b = {'aa','bb','cc','dd','ee','33'}
    c = a.intersection(b)
    print(c)


    结果
    set(['33'])


    #intersection_update,指出集合a和集合b之间的交集,并更新集合a的元素为集合a和集合b的交集

    a = {'11','22','33','44','dd'}
    b = {'aa','bb','cc','dd','ee','33'}
    a.intersection_update(b)
    print(a)


    结果
    set(['33', 'dd'])

    #isdisjoint,判断a、b两个集合是否有交集,如果没有则返回True,如果有交集,则返回False

    a = {'11','22','33','44','dd'}
    b = {'aa','bb','cc','dd','ee','33'}
    print(a.isdisjoint(b))

    结果
    False


    #issubset,判断b集合是否为a集合的子序列,也就是说a集合是否包含b集合,如果是则返回True,如果不是,则返回False

    a = {'11','22','33','44','dd'}
    b = {'aa','bb','cc','dd','ee','33'}
    print(a.issubset(b))
    #
    #
    b = {'11','22','33','44','dd'}
    a = {'33'}
    print(a.issubset(b))

    结果
    False
    True


    #union,取集合b和集合a的并集,并把并集赋值给另外一个集合

    a = {'11','22','33','44','dd'}
    b = {'aa','bb','cc','dd','ee','33'}
    c = a.union(b)
    print(c)


    结果
    set(['11', 'aa', 'ee', 'bb', '22', '33', '44', 'cc', 'dd'])

    #update,可以和add对比,add只能一个一个添加,而update可以批量添加

    a = {'1','2','3','4'}
    a.update('a','b','c')
    print(a)


    结果
    set(['a', 'c', 'b', '1', '3', '2', '4'])

    a = {'1','2','3','4'}
    li = 'cui'
    a.update(li)
    print(a)

    结果
    set(['c', 'i', '1', '3', '2', 'u', '4'])

  • 相关阅读:
    retain assign copy (unsigned long)
    myeclipse未设置断点,但不断跳出debug
    SOAP tomcat7.0 HelloWorld
    JAVA第二天数据类型和循环
    java中产生随机数的几种方法
    java的第一个程序 Hello World
    java中产生随机数的几种方法
    用加减来简单的看策略类
    用加减来简单的看策略类
    奇数阶幻方
  • 原文地址:https://www.cnblogs.com/bainianminguo/p/6392157.html
Copyright © 2011-2022 走看看