python数据类型可变不可变知识点总结

Python数据类型可变不可变知识点总结

在Python中,数据类型被分为可变和不可变两种类型。可变意味着这种类型的值可以在创建后更改,而不可变意味着这种类型的值创建后不能更改。这里我们将讨论常见的Python数据类型的可变性和不可变性,并提供相关示例。

不可变数据类型

数字类型

数字类型(int、float、complex等)是不可变的数据类型。这意味着每次更改数字类型的值时,Python都会创建一个新的数字对象来代替旧的对象。

示例代码:

>>> a = 1
>>> b = a
>>> id(a)
139828645103696
>>> id(b)
139828645103696
>>> a = a + 1
>>> id(a)
139828645103728
>>> id(b)
139828645103696

这个示例中,我们创建了一个变量a并将值1赋值给它,然后再将a赋给另一个变量b。之后,我们更改a的值,这将创建一个新的对象,b依然保持原值,即不可变性。

字符串

字符串是不可变的数据类型。这意味着字符串中每次更改一部分时,Python将构造一个新字符串对象,而不是在原始字符串上进行更改。

示例代码:

>>> s1 = "hello"
>>> s2 = s1
>>> id(s1)
140444091958896
>>> id(s2)
140444091958896
>>> s1 = s1 + " world"
>>> id(s1)
140444091965424
>>> id(s2)
140444091958896

这个示例中,我们创建了一个字符串s1,并将相同的值赋值给s2。当我们更改s1的值时,Python创建一个新的字符串对象,并将s1指向这个新对象,s2保持指向旧对象的指针。

元组

元组是不可变的。元组是由多个值组成的的不可变序列。一旦创建,元组中的元素不能添加或删除,也不能更改元素的值。

示例代码:

>>> t = (1, 2, 3)
>>> id(t)
140444091943376
>>> t[0] = 4  # 不能更改元素的值
TypeError: 'tuple' object does not support item assignment

可变数据类型

列表

列表是可变的。列表是由多个元素组成的可变有序序列。可以通过添加、删除或更改列表的元素来更改其值。

示例代码:

>>> l = [1, 2, 3]
>>> id(l)
140444091865936
>>> l.append(4)
>>> id(l)
140444091865936  # 值被修改,但指向的对象未发生变化

在这个示例中,我们创建了一个列表l并将值1,2,3赋给它,之后我们添加了一个新值4,这个值会被添加到已经存在的列表对象中,指向的对象并没有变化。

集合

集合是可变的。集合是由多个元素组成的可变无序序列。可以通过添加、删除或更改集合的元素来更改其值。

示例代码:

>>> s = {1, 2, 3}
>>> id(s)
140444092024960
>>> s.add(4)
>>> id(s)
140444092024960  # 值被修改,但指向的对象未发生变化

在这个示例中,我们创建了一个集合s并将值1,2,3赋给它,之后我们添加了一个新值4,这个值会被添加到已经存在的集合对象中,指向的对象并没有变化。

字典

字典是可变的。字典是由键及其对应的值组成的可变序列。可以通过添加、删除或更改字典的元素来更改其值。

示例代码:

>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> id(d)
140444092097696
>>> d['d'] = 4
>>> id(d)
140444092097696  # 值被修改,但指向的对象未发生变化

在这个示例中,我们创建了一个字典d,并将值{'a': 1, 'b': 2, 'c': 3}赋给它,之后我们添加了一个新键值对{'d': 4},这个键值对会被添加到已经存在的字典对象中,指向的对象并没有变化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python数据类型可变不可变知识点总结 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • python 基于aiohttp的异步爬虫实战详解

    Python基于aiohttp的异步爬虫实战详解 异步编程是Python中的一种高效的编程方式,可以提高程序的性能和响应速度。在网络爬虫中异步编程可以帮助我们快速地获取网内容。本文将介绍Python基于aiohttp的异步爬虫实战详解。 安装aiohttp库 在开始之前,我们需要安装aiohttp库。可以使用pip命令来安装: pip install aio…

    python 2023年5月13日
    00
  • Python 经典算法100及解析(小结)

    下面是关于“Python经典算法100及解析(小结)”的完整攻略。 1. 算法100题概述 Python经典算法100题是一系列经典的算法题目,涵盖了排序找、字符串、数组、链表、树等多个领域。这些题目旨在帮助Python开发者提高算法能力,掌握用的算法思想和技巧。 2. 算法100题解析 下面是对算法100题的解析,包括题目描述、解题思路和代码实现。 2.1…

    python 2023年5月13日
    00
  • python sqlobject(mysql)中文乱码解决方法

    Python sqlobject(mysql)中文乱码解决方法 在使用Python的sqlobject库连接MySQL数据库时,有时会出现中文乱码的问题。本文将为您提供一个完整攻略,详细讲解如何解决这问题,并提供两个示例说明。 1. 中文乱码问题的原因 在使用sqlobject库连接MySQL数据库时,中文乱问题通常是由于编码不一致导致的。MySQL默认使用…

    python 2023年5月14日
    00
  • python 的列表遍历删除实现代码

    在Python中,可以使用循环遍历的方式删除列表中的元素。但是需要注意的是,当删除列表中的元素时,会改变列表的长度,因此需要使用倒序遍历的,从后往前删除元素。本文将详讲解Python中列表遍历删除的实现代码,同时提供多个示例说明。 列遍历删除 在Python中,可以使用循环历的方式删除列表中的元素。: # 遍历删除元素 my_list = [1, 2, 3,…

    python 2023年5月13日
    00
  • python导入库的具体方法

    通过导入内置、第三方或自定义的Python库,我们可以扩展 Python 的功能并让开发更高效。下面是 Python 导入库的具体方法攻略。 1. 导入内置库 Python 内置了许多常用库,例如os、time和re等。导入内置库只需要使用 import 关键字加上库名即可。 示例代码: import os # 使用os模块的方法 os.chdir(‘/pa…

    python 2023年6月2日
    00
  • Python实现PDF转Word的方法详解

    Python实现PDF转Word的方法详解 本文介绍了使用Python实现将PDF文件转换为Word文档的详细方法。具体过程如下: 1. 安装Python的相关库 要使用Python实现PDF转Word,我们需要使用几个Python的相关库,包括pdfminer3k和docx。我们可以使用以下命令安装它们: pip install pdfminer3k pi…

    python 2023年6月5日
    00
  • python 舀取和递归

    【问题标题】:python scooping and recursionpython 舀取和递归 【发布时间】:2023-04-07 02:15:01 【问题描述】: 我对一个小的递归代码感到震惊。我已经打印了输出并且打印正常,但是当我尝试放置一个计数器来实际计算我的答案时,它给了我舀错误。 total = 0 def foo(me, t): if t&lt…

    Python开发 2023年4月7日
    00
  • Docker 部署Scrapy的详解

    Docker部署Scrapy的详解 Scrapy是一个流行的Python爬虫框架,它可以帮助我们快速地构建和部署爬虫。在使用Scrapy时,我们可以使用Docker来部署Scrapy爬虫,以便更好地管理和维护我们的爬虫。本文将详细讲解如何使用Docker部署Scrapy,并提供两个示例。 环境配置 在使用Docker部署Scrapy之前,我们需要先安装Doc…

    python 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部