zoukankan      html  css  js  c++  java
  • Python set集合详解

    Python 中的集合,和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的,互不相同。

    从形式上看,和字典类似,Python 集合会将所有元素放在一对大括号 {} 中,相邻元素之间用“,”分隔,如下所示:

    {element1,element2,...,elementn}

    其中,elementn 表示集合中的元素,个数没有限制。https://www.furuihua.cn/article/456.html

    从内容上看,同一集合中,只能存储不可变的数据类型,包括整形、浮点型、字符串、元组,无法存储列表、字典、集合这些可变的数据类型,否则 Python 解释器会抛出 TypeError 错误。比如说:

    >>> {{'a':1}}
    Traceback (most recent call last):
      File "<pyshell#8>", line 1, in <module>
        {{'a':1}}
    TypeError: unhashable type: 'dict'
    >>> {[1,2,3]}
    Traceback (most recent call last):
      File "<pyshell#9>", line 1, in <module>
        {[1,2,3]}
    TypeError: unhashable type: 'list'
    >>> {{1,2,3}}
    Traceback (most recent call last):
      File "<pyshell#10>", line 1, in <module>
        {{1,2,3}}
    TypeError: unhashable type: 'set'


    并且需要注意的是,数据必须保证是唯一的,因为集合对于每种数据元素,只会保留一份。例如:

    >>> {1,2,1,(1,2,3),'c','c'}
    {1, 2, 'c', (1, 2, 3)}

    由于 Python 中的 set 集合是无序的,所以每次输出时元素的排序顺序可能都不相同。

    其实,Python 中有两种集合类型,一种是 set 类型的集合,另一种是 frozenset 类型的集合,它们唯一的区别是,set 类型集合可以做添加、删除元素的操作,而 forzenset 类型集合不行。本节先介绍 set 类型集合,后续章节再介绍 forzenset 类型集合。

    Python创建set集合

    Python 提供了 2 种创建 set 集合的方法,分别是使用 {} 创建和使用 set() 函数将列表、元组等类型数据转换为集合。

    1) 使用 {} 创建

    在 Python 中,创建 set 集合可以像列表、元素和字典一样,直接将集合赋值给变量,从而实现创建集合的目的,其语法格式如下:

    setname = {element1,element2,...,elementn}

    其中,setname 表示集合的名称,起名时既要符合 Python 命名规范,也要避免与 Python 内置函数重名。

    举个例子:

    1. a = {1,'c',1,(1,2,3),'c'}
    2. print(a)

    运行结果为:

    {1, 'c', (1, 2, 3)}

    2) set()函数创建集合

    set() 函数为 Python 的内置函数,其功能是将字符串、列表、元组、range 对象等可迭代对象转换成集合。该函数的语法格式如下:

    setname = set(iteration)

    其中,iteration 就表示字符串、列表、元组、range 对象等数据。

    例如:

    1. set1 = set("c.biancheng.net")
    2. set2 = set([1,2,3,4,5])
    3. set3 = set((1,2,3,4,5))
    4. print("set1:",set1)
    5. print("set2:",set2)
    6. print("set3:",set3)

    运行结果为:

    set1: {'a', 'g', 'b', 'c', 'n', 'h', '.', 't', 'i', 'e'}
    set2: {1, 2, 3, 4, 5}
    set3: {1, 2, 3, 4, 5}

    注意,如果要创建空集合,只能使用 set() 函数实现。因为直接使用一对 {},Python 解释器会将其视为一个空字典。

    Python访问set集合元素

    由于集合中的元素是无序的,因此无法向列表那样使用下标访问元素。Python 中,访问集合元素最常用的方法是使用循环结构,将集合中的数据逐一读取出来。

    例如:

    1. a = {1,'c',1,(1,2,3),'c'}
    2. for ele in a:
    3. print(ele,end=' ')

    运行结果为:

    1 c (1, 2, 3)

    由于目前尚未学习循环结构,以上代码初学者只需初步了解,后续学习循环结构后自然会明白。

    Python删除set集合

    和其他序列类型一样,手动函数集合类型,也可以使用 del() 语句,例如:

    1. a = {1,'c',1,(1,2,3),'c'}
    2. print(a)
    3. del(a)
    4. print(a)

    运行结果为:

    {1, 'c', (1, 2, 3)}
    Traceback (most recent call last):
      File "C:UsersmengmaDesktop1.py", line 4, in <module>
        print(a)
    NameError: name 'a' is not defined


    Python set 集合最常用的操作是向集合中添加、删除元素,以及集合之间做交集、并集、差集等运算。受到篇幅的限制,这些知识会放到下节进行详细讲解。

  • 相关阅读:
    为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。 写出问题定义并分析系统的可行性。
    “中文编程”是解决中国程序员编程的有效武器,请问它是个“银弹”吗?
    这是我第一个博客
    jupyter-notebook打不开浏览器的问题
    python购物车程序
    python 登陆小程序
    mysql备份恢复(二)
    mysql备份恢复(一)
    docker实践之创建支持ssh服务的镜像
    基于python的设计模式之创建型模型
  • 原文地址:https://www.cnblogs.com/furuihua/p/12611519.html
Copyright © 2011-2022 走看看