zoukankan      html  css  js  c++  java
  • 六,集合

    集合的基本语法
    集合是一种可变的数据类型,其中的元素必须是不可变的数据类型,无序,切不重复。
    可以用于去重功能
    例如:
    set1 = {1,2,3}
    set()可以把列表,元组等类型转换为集合

    集合的内置方法:

    增加集合的元素:
    set1.add(想要增加的内容) #增加一个元素到集合中去。
    set1.update(添加其他的序列数据) #类似于列表中的extend,可以把其他的序列增加到集合中!
    删除元素:
    set1.pop() #随机删除集合中的某一个元素。并且将返回被删除的元素。
    set1.remove(想要删除的元素) #可以按照元素去删除。
    set1.discard() #按照value删除一个元素,如果个值不存在不会报错。返回None
    set1.clear() #清空列表中的所有元素,返回一个空的集合!
    del set1() #直接删除整个集合!
    因为是不可变数据类型,所以没有“改”操作
    查询:
    只能在for i in set:语句中进行查询
    特殊功能,查询两个集合的交集:
    例如:
    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 & set2) #{4,5}
    print(set1.inersection(set2)) #{4,5}
    并集:
    print(set1 | set2) #{1,2,3,4,5,6,7,8}
    print(set2.union(set1)) #{1,2,3,4,5,6,7,8}
    反交集:
    print(set1 ^ set2) #{1,2,3,6,7,8}
    print(set1.symmetic_difference(set2))
    差集:set1中独有的元素就是set1 - set2的差集:
    print(set1 - set2) #{1,2,3}
    print(set1.difference(set2))
    子集和超集:
    set1 = {1,2,3}
    set2 = {1,2,3,4,5}
    print(set1<set2)
    print(set1.issunbset())
    #True
    print(set2>set1)
    print(set2.issuperset())
    #True
    返回的是布尔值
    set.isdisjoint()
    返回是否是完全没有交集

    怎么将列表等其他的数据类型转换为集合类型?
    list1 = [1,2,3,4,1,2,3,4]
    set1 = set(list1)
    list1 = list(set1)
    达到了一种通过转换为集合的方式,去重的效果。

    将集合转换为一种不可变的数据类型:
    s = frozenset('barry')
    print(s,type(s))
    可以迭代,但是不能增加或删除其中的元素。


  • 相关阅读:
    UML类图与面向对象设计原则
    java学习:用反射构造bean
    Lucene基础(一)--入门
    Lucene基础(二)--索引的操作
    Lucene基础(三)-- 中文分词及高亮显示
    Lucene基础(四)-- 结合数据库使用
    JMS
    深入浅出JMS(一)——JMS简介
    深入浅出JMS(二)——JMS的组成
    八大排序算法
  • 原文地址:https://www.cnblogs.com/wanghanyao/p/10264117.html
Copyright © 2011-2022 走看看