zoukankan      html  css  js  c++  java
  • python中集合相关的一些方法

    集合:可变的数据类型,它里面的元素必须是不可变的数据类型,无序不重复

    1:集合的创建

    1 set1 = set({1,2,3,'barry'})
    2 set2 = {1,2,'barry'}
    3 print(set1,set2)        #输出结果:{1, 2, 3, 'barry'} {1, 2, 'barry'}

    2:集合的增

    1 add()方法增加
    2 set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}
    3 set1.add('python')
    4 print(set1)           #输出结果:{'barry', 'alex', 'ritian', 'wusir', 'egon', 'python'}
    1 update:迭代着增加
    2 set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}
    3 set1.update('A')
    4 print(set1)              #输出结果:{'ritian', 'barry', 'alex', 'wusir', 'A', 'egon'}
    5 set1.update('老师')
    6 print(set1)              #输出结果:{'ritian', 'barry', 'alex', '师', 'wusir', '老', 'A', 'egon'}
    7 set1.update([1,2,3])
    8 print(set1)               #输出结果:{1, 2, 'ritian', 'barry', 'alex', '师', 3, 'wusir', '老', 'A', 'egon'}

    对比列表中的迭代添加

    1 #extend() 迭代的去添加
    2 li = ['python', 'java', 'c++']
    3 li.extend('aaaaa')
    4 print(li)        #输出结果:['python', 'java', 'c++', 'a', 'a', 'a', 'a', 'a']

    对比字典中的update()

     1 ###》》》》改
     2 
     3 #利用键值对修改,有键则覆盖,无键则添加
     4 
     5 #update     只可意会不可言传
     6 dic1 = {
     7     'name' : 'python',
     8     'age' : '1981',
     9     'sex' : 'male'
    10 }
    11 dic2 = {
    12     'name' : 'java',
    13     'hobby' : 'coding'
    14 }
    15 
    16 print(dic2.update(dic1))        #输出结果:None
    17 print(dic1)                 #输出结果:{'name': 'python', 'age': '1981', 'sex': 'male'}
    18 print(dic2)              #输出结果:{'name': 'python', 'hobby': 'coding', 'age': '1981', 'sex': 'male'}

    3:集合的删

     1 set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}
     2 set1.remove('alex')    #删除一个元素
     3 print(set1)            #输出结果:{'barry', 'ritian', 'egon', 'wusir'}
     4 set1.pop()           #随机删除一个元素
     5 print(set1)             #输出结果:{'ritian', 'egon', 'wusir'}
     6 set1.clear()          #清空集合
     7 print(set1)             #输出结果:set()
     8 del set1             #删除集合
     9 print(set1)             #输出结果:(报错)    print(set1)
    10                         #   NameError: name 'set1' is not define


    对比列表当中的pop(),remove(),clear(),del

     1 #》》》》》》删
     2 
     3 #pop()
     4 li = ['python', 'java', 'c++']
     5 li.pop(1)
     6 print(li)     #输出结果:['python', 'c++'],若li.pop(),则默认删除最后一个元素
     7 
     8 #remove()
     9 li = ['python', 'java', 'c++']
    10 li.remove('java')
    11 print(li)      #输出结果:['python', 'c++']
    12 
    13 #del:按照切片的位置删除
    14 
    15 li = ['python', 'java', 'c++']
    16 del li[1:2]
    17 print(li)     #输出结果:['python', 'c++']
    18 
    19 #clear():  清空列表
    20 
    21 li = ['python', 'java', 'c++']
    22 li.clear()
    23 print(li)     #输出结果:  []

    对比字典中的pop(),clear()

    1 #pop()方法
    2 dic1 = {
    3     'name' : 'python',
    4     'age' : '1981',
    5     'sex' : 'male'
    6 }
    7 dic1.pop('name')   #有这个键的话则默认返回值为键值‘python’
    8 print(dic1)        #输出结果:{'age': '1981', 'sex': 'male'}
    9 print(dic1.pop('name','没有这个'))    #如果没有需要删除的键,默认返回None,也可自定义  输出结果:没有这个
    1 #clear()  清空字典,同list的clear差不多
    2 dic1 = {
    3     'name' : 'python',
    4     'age' : '1981',
    5     'sex' : 'male'
    6 }
    7 print(dic1.clear())   #输出结果:None
    8 print(dic1)           #输出结果:{}

    4:集合的其他操作

    1 交集(&  或者  intersection)
    2 set1 = {1, 2, 3, 4, 5}
    3 set2 = {4, 5, 6, 7, 8}
    4 print(set1 & set2)         #输出结果:{4, 5}
    5 print(set1.intersection(set2))    #输出结果:{4, 5}
    1 #差集(-  或者 differenc) 即set1特有的元素
    2 set1 = {1, 2, 3, 4, 5}
    3 set2 = {4, 5, 6, 7, 8}
    4 print(set1 - set2)              #输出结果:{1, 2, 3}
    5 print(set1.difference(set2))    #输出结果:{1, 2, 3}
    1 #反交集(^  或者 symmetric_difference)
    2 set1 = {1, 2, 3, 4, 5}
    3 set2 = {4, 5, 6, 7, 8}
    4 print(set1 ^ set2)              #输出结果:{1, 2, 3, 6, 7, 8}
    5 print(set1.symmetric_difference(set2))    #输出结果:{1, 2, 3, 6, 7, 8}
    1 #子集与超集
    2 set1 = {1, 2, 3}
    3 set2 = {1, 2, 3, 4, 5, 6}
    4 print(set1 < set2)
    5 print(set1.issubset(set2))
    6 print(set2 > set1)
    7 print(set2.issuperset(set1))       #输出结果:以上输出都为True
    1 #frozenset不可变集合,让集合变成不可变类型
    2 s = frozenset('barry')
    3 print(s, type(s))             #输出结果:frozenset({'b', 'y', 'a', 'r'}) <class 'frozenset'>
  • 相关阅读:
    题解【洛谷P2221】[HAOI2012]高速公路
    APIO2020 滚粗记
    2018 百度之星程序设计大赛
    TimusOJ2058. 100500 palidnromes 最小回文划分模板
    HDU-5937 Equation dfs+剪枝
    Codeforces 932G
    CodeChef Palindromeness 回文自动机
    HDU-5421 Victor and String 回文自动机
    P4287 [SHOI2011]双倍回文 回文自动机
    2020CCPC绵阳/gym102822 C. Code a Trie 贪心
  • 原文地址:https://www.cnblogs.com/rcat/p/9286875.html
Copyright © 2011-2022 走看看