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'>
  • 相关阅读:
    一张图片入门Python
    4.1. 如何在Windows环境下开发Python
    你必须知道的EF知识和经验
    XUnit的使用
    如何使用NUnit
    Entity Framework 不支持DefaultValue
    Have You Ever Wondered About the Difference Between NOT NULL and DEFAULT?
    Validation failed for one or more entities. See 'EntityValidationErrors' property for more details
    Entity Framework 与多线程
    sqlite中的自增主键
  • 原文地址:https://www.cnblogs.com/rcat/p/9286875.html
Copyright © 2011-2022 走看看