• Day 6:集合(set)


    集合(set)
    定义:由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key
    特性:集合里面数据类型是不可变的
    1.可变的数据类型:列表,字典
    2、不可变的数据类型:数字、元组、字符串
    3、没有重复的元素

    集合的各种方法
    1 #把列表转换成集合并去重
    2 name =['sun',18,'yao','fang','yao']
    3 name_1 = set(name)
    4 print(name_1)
    5 #输出:{'fang', 'sun', 18, 'yao'}
    #定义不可变集合
    s = frozenset('1','sun')
    不能添加,删除,修改
    #在集合中添加元素
    name ={'sun',18,'yao','fang'}
    sun = {'89',18,'fang'}
    name.add('di')
    print(name)
    #输出:{'fang', 18, 'di', 'yao', 'sun'}
    
    #清空集合
    name ={'sun',18,'yao','fang'}
    sun = {'89',18,'fang'}
    name.clear()
    print(name)
    #输出:set()
    
    #拷贝集合
    name ={'sun',18,'yao','fang'}
    sun = {'89',18,'fang'}
    test = name.copy()
    print(test)
    #输出:{'sun',18,'yao','fang'}
    
    #删除
    name ={'sun',18,'yao','fang'}
    sun = {'89',18,'fang'}
    #name.pop() 随机删除
    #name.discard(18)删除没有的值不会报错,显示None
    ##name.remove() 删除没有的值,会报错
    print(name)
    #输出:{18, 'sun', 'yao'}
    View Code
    #交集(2个集合都有的数据)
    #并集(2个集合数据的相加去除重复值)
    #差集(除了2个集合共有的数据,剩下的数据就是差集)
    #交叉补集(2个集合 加起来之后,除去共有的部分,剩下的就是交叉补集)
    name ={'sun',18,'yao','fang'}
    sun = {'89',18,'fang'}
    #name_1= name.intersection(sun)#交集
    print(name&sun)#交集的另外一种方法
    #print(name_1)
    #输出{18, 'fang'}
    
    #并集
    name ={'sun',18,'yao','fang'}
    sun = {'89',18,'fang'}
    print(name.union(sun))
    print(name|sun) #另外一种方法
    #输出{'yao', 18, 'fang', '89', 'sun'}
    
    #差集
    name ={'sun',18,'yao','fang'}
    sun = {'89',18,'fang'}
    print(name.difference(sun))
    print(name-sun)#另外一种方法
    print(sun-name)
    #输出{'yao', 'sun'}
    #{'yao', 'sun'}
    #{'89'}
    
    #交叉补集
    name ={'sun',18,'yao','fang'}
    sun = {'89',18,'fang'}
    print(name.symmetric_difference(sun))
    print(name^sun)#另一种方法
    #输出{'sun', 'yao', '89'}
    
    ##如果没有交集,返回True
    name ={'sun',18,'yao','fang'}
    sun = {'89',19,'fan'}
    print(name.isdisjoint(sun))
    #输出True
    
    #子集
    name ={'sun',18,'yao','fang'}
    sun = {18,'yao','fang'}
    print(name.issubset(sun))
    print(sun.issubset(name))
    #输出False /True
    
    #父集
    name ={'sun',18,'yao','fang'}
    sun = {18,'yao','fang'}
    print(name.issuperset(sun))
    print(sun.issuperset(name))
    #输出True  False、
    
    #更新多个值
    name ={'sun',18,'yao','fang'}
    sun = {19,'yao','fan'}
    sun.update([5,8])
    print(sun)
    #输出{5, 8, 19, 'yao', 'fan'}
     
    人生苦短,我用Python
  • 相关阅读:
    更准确的mysql全文索引
    range
    牛顿冷却定律 使用
    Servo: The Embeddable Browser Engine
    Node.js V0.12新特性之性能优化
    Lodash,你正在使用的JavaScript库
    Python on Android
    Microsoft HoloLens 技术解谜(下)
    Microsoft HoloLens 技术解谜(上)
    市售体感设备横评
  • 原文地址:https://www.cnblogs.com/sunjinchao/p/10691120.html
Copyright © 2020-2023  润新知