[Python3]Sets(集合)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python3]Sets(集合)相关的知识,希望对你有一定的参考价值。

概述

set是Python的基本数据类型,它有可变集合(set()) 和不可变集合(frozenset)两种,在本节中,我们主要讲解set的使用方法。set和dict类似,其主要特性是:

  • 其存储的元素是无序的

  • 其存储的元素是不重复

下面我们看一下如何创建集合:

set1 = set(u"DeepTest DeepTest")
print(set1)
上述语句将输出:
{t, D, s, T, p, e}

这里体现了set的关键特性:无序、不重复。

set方法

在Python中,通过add方法来给set新增新的元素,如果添加重复元素,会被自动过滤掉,即添加没任何效果。

  • add
    新增一个元素到set中

  • remove
    从set中删除指定的元素

  • clear
    清空set集合

  • update
    用于新增多个元素值,参数为list

  • issubset 用法 s1.issubset(s2), 判断s1中的每个元素是否都在s2中,即s1<-s2

  • issuperset 用法 s1.issuperset(s2), 判断s2中的每个元素是否都在s1中,即s1>=s2

  • union
    并集,返回两个集合的并集

  • intersection
    交集,返回两个集合的交集

  • difference 用法 s1.difference(s2), 返回s1中有s2中没的元素

下面看下代码示例:

# -*- coding:utf-8 -*-

__author__ = u谷白

if __name__ == "__main__":
    print(u"set操作示例")

    set_source = set([1, 1, 2, 3, 4, 5, 6, 7])
    set_demo = set([1, 1, 2, 3, 4, 5, 6, 7])

    print(u"原始数据: ", end="")
    print(set_demo)    
    
    # add方法,新增元素
    print(u"add后: ", end="")
    set_demo.add(9)
    set_demo.add(1)

    print(set_demo)    
    
    # remove 删除元素
    print(u"remove后: ", end="")
    set_demo.remove(9)
    
    print(set_demo)    
    
    # update 新增多个元素值
    list_demo = ["a", "b", "c"]
    set_demo.update(list_demo)

    print(u"update后: ", end="")
    print(set_demo)

运行效果如下:

set操作示例
原始数据: {1, 2, 3, 4, 5, 6, 7}
add后: {1, 2, 3, 4, 5, 6, 7, 9}
remove后: {1, 2, 3, 4, 5, 6, 7}
update后: {1, 2, 3, 4, 5, 6, 7, b, a, c}

对于其他方法的使用,请自行练习掌握。

以上是关于[Python3]Sets(集合)的主要内容,如果未能解决你的问题,请参考以下文章

python基础--基本数据类型( Sets(集合)--不可变数据)

python3之数据类型

集合是不是像 python3.6 中的 dicts 一样排序

数值与字符串类型

python基础--基本数据类型(List(列表)--可变数据)

python基础--基本数据类型(Tuple(元组)--不可变数据)