返回顶部
首页 > 资讯 > 后端开发 > Python >Python可变集合和不可变集合的构造方法有哪些
  • 495
分享到

Python可变集合和不可变集合的构造方法有哪些

2023-06-21 23:06:45 495人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python可变集合和不可变集合的构造方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Python集合又是一种新的数据类型,集合有两种形

这篇文章主要介绍了python可变集合和不可变集合的构造方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

 Python集合又是一种新的数据类型,集合有两种形式:可变集合(set())和不可变集合(frozenset())两种,这两种集合操作方法比较类似,但是在底层性质上有截然想法的区别。集合是一种无序的,不重复且不可随机访问的元素集合,在概念和运算上和数学中的集合类似,集合分为可变和不可变两种。

一、对比数据类型

下面是我们学习过的一些数据类型,下面的注释是对比这些数据类型的结果,供学习集合前的参考。

str1 = 'pythonpython'  # 不可变,有序:可以通过下标访问list1 = [1, 2, 3, 2]  # 可变,有序:可以通过下标访问tup1 = (1, 2, 3, 2)  # 不可变,有序:可以通过下标访问dict1 = {'name': 'Tom', 'age': 18, 'love': 'python'}  # 可变,无序:但可以通过键访问

二、可变集合构造方法

直接构造

set2 = {'name', 19, 'python'}print(set2, type(set2))

返回结果:

{19, 'python', 'name'} <class 'set'>

使用函数构造

str1 = 'pythonpython'list1 = [1, 2, 3, 2]tup1 = (1, 2, 3, 2)dict1 = {'name': 'Tom', 'age': 18, 'love': 'python'}set3 = set(str1)print(set3, type(set3))set4 = set(list1)print(set4, type(set4))set5 = set(tup1)print(set5, type(set5))set6 = set(dict1)print(set6, type(set6))

返回结果:

{'t', 'n', 'p', 'o', 'h', 'y'} <class 'set'>
{1, 2, 3} <class 'set'>
{1, 2, 3} <class 'set'>
{'love', 'name', 'age'} <class 'set'>

使用推导式构造集合

set7 = set(i for i in range(1, 5))print(set7, type(set7))set8 = {i for i in list1}print(set8, type(set8))set8 = {i for i in tup1}print(set8, type(set8))

返回结果:

{1, 2, 3, 4} <class 'set'>
{1, 2, 3} <class 'set'>
{1, 2, 3} <class 'set'>

三、不可变集合的构造方法

不可变集合构造(与可变集合类似,把set改为frozenset即可)。

使用frozenset()函数构造

set3 = frozenset(str1)print(set3, type(set3))set4 = frozenset(list1)print(set4, type(set4))set5 = frozenset(tup1)print(set5, type(set5))set6 = frozenset(dict1)print(set6, type(set6))frozenset({'p', 'n', 't', 'h', 'y', 'o'}) <class 'frozenset'>frozenset({1, 2, 3}) <class 'frozenset'>frozenset({1, 2, 3}) <class 'frozenset'>frozenset({'name', 'age', 'love'}) <class 'frozenset'>

推导式构造

set7 = frozenset(i for i in range(1, 5))print(set7, type(set7))

返回结果:

frozenset({1, 2, 3, 4}) <class 'frozenset'>

四、集合构造注意事项

集合不能想其他数据集一样使用特有的符号来构造,集合使用的语法符号是{},和字典是一样的,这时候直接使用{}来构造的,系统无法判断数据类型是字典还是集合,会默认为集合。

set9 = {}print(type(set9))  # 默认为字典:<class 'dict'>

正确的方法只有使用构造函数来实现了。

set9 = set()set99 = frozenset()

集合中不能包含字典和列表这样的可变类型元素

set10 = {'name', 19, [1, 2, 3, 2]}

列表不可哈希:TypeError: unhashable type: 'list'

感谢你能够认真阅读完这篇文章,希望小编分享的“Python可变集合和不可变集合的构造方法有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网Python频道,更多相关知识等着你来学习!

--结束END--

本文标题: Python可变集合和不可变集合的构造方法有哪些

本文链接: https://lsjlt.com/news/301312.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python可变集合和不可变集合的构造方法有哪些
    这篇文章主要介绍了Python可变集合和不可变集合的构造方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Python集合又是一种新的数据类型,集合有两种形...
    99+
    2023-06-21
  • Python可变集合和不可变集合的构造方法大全
    目录一、对比数据类型 二、可变集合构造方法 三、不可变集合的构造方法 四、集合构造注意事项  Python集合又是一种新的数据类型,集合有两种形式:可变集合(set())和不可变集合...
    99+
    2024-04-02
  • C#集合之不变集合的用法
    如果对象可以改变其状态,就很难在多个同时运行的任务中使用。这些集合必须同步。如果对象不能改变器状态,就很容易在多个线程中使用。Microsoft提供了一个新的集合库:Microsof...
    99+
    2024-04-02
  • .Net中的不可变集合(ImmutableCollection)程序集简介
    今天发现MS在Nuget上发布了一个Immutable Collection的程序集,提供了对不可变对象的集合的支持。 简单的看了一下,貌似支持的还比较全: ImmutableAr...
    99+
    2024-04-02
  • 元组奥秘:Python 中不可变集合的秘密兵器
    在 Python 的数据结构宝库中,元组作为不可变的集合脱颖而出。与列表不同,元组一旦创建就不能修改其内容,使其成为安全性和效率的武器。本文将深入探究元组的奥秘,揭示它们在 Python 编程中的强大之处。 创建和访问元组 创建元组极其简...
    99+
    2024-04-02
  • 关于Java Guava ImmutableMap不可变集合源码分析
    目录Java Guava不可变集合ImmutableMap的源码分析一、案例场景二、ImmutableMap源码分析Java Guava不可变集合ImmutableMap的源码分析 ...
    99+
    2024-04-02
  • Python集合的常用方法有哪些
    这篇“Python集合的常用方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python集合的常用方法有哪些”文章吧...
    99+
    2023-06-29
  • Laravel的集合方法有哪些
    这篇文章主要介绍了Laravel的集合方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Laravel的集合方法有哪些文章都会有所收获,下面我们一起来看看吧。Laravel Eloquent 通常返回一个...
    99+
    2023-07-04
  • Python中有哪些判断集合的方法
    Python中有哪些判断集合的方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众...
    99+
    2023-06-14
  • python中变量合并方法有哪些
    这篇文章主要为大家展示了“python中变量合并方法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中变量合并方法有哪些”这篇文章吧。一、list 合并第一种方法:a ...
    99+
    2023-06-29
  • python集合常用操作方法有哪些
    本篇内容介绍了“python集合常用操作方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!集合的特性无序、不重复、可迭代常用api创建...
    99+
    2023-07-04
  • Java源码分析:Guava之不可变集合ImmutableMap的源码分析
    目录一、案例场景二、ImmutableMap源码分析总结一、案例场景 遇到过这样的场景,在定义一个static修饰的Map时,使用了大量的put()方法赋值,就类似这样—— pu...
    99+
    2024-04-02
  • python中合法的变量名有哪些
    python中合法的变量名有有以下几点规则:变量名可以由字母、数字、下划线(_)组成,但不能以数字开头;变量名不可以是python关键字,但可以包含关键字;变量名不能有空格;...
    99+
    2024-04-02
  • java有哪些遍历集合的方法
    java中遍历集合的方法有:1.使用循环方式遍历;2.使用加强for循环遍历;3.使用Lambda表达式遍历;4.使用迭代方式遍历;java中遍历集合的方法有以下几种使用循环方式遍历for (int i = 0; i < listNames...
    99+
    2024-04-02
  • java遍历集合的方法有哪些
    Java中遍历集合的方法有以下几种:1. 使用foreach循环:通过foreach循环可以遍历Collection集合和数组。``...
    99+
    2023-09-27
    java
  • List集合去重的方法有哪些
    本篇内容介绍了“List集合去重的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题由来在实际开发的时候,我们经常会碰到这么一个困...
    99+
    2023-06-27
  • Python集合set的交集和并集操作方法
    目录一、交集操作1.使用intersection()求交集2. 使用位运算&符求交集3.intersection_update()方法4.使用intersection()方法...
    99+
    2024-04-02
  • 压缩两个集合的方法有哪些
    这篇文章主要介绍“压缩两个集合的方法有哪些”,在日常操作中,相信很多人在压缩两个集合的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”压缩两个集合的方法有哪些”的疑惑...
    99+
    2024-04-02
  • JavaScript中set集合的方法都有哪些
    JavaScript中set集合的方法都有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。set方法有:1、add(),用于往集合添加元...
    99+
    2024-04-02
  • Java的Collection集合常用方法有哪些
    这篇文章主要介绍了Java的Collection集合常用方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java的Collection集合常用方法有哪些文章都会有所收获,下面我们一起来看看吧。1、boo...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作