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中使用matplotlib绘制mqtt数据实时图像功能

    下面是Python中使用matplotlib绘制mqtt数据实时图像功能的完整攻略: 准备工作 在开始之前,需要安装以下三个库: paho-mqtt:python版本的MQTT客户端,用于连接MQTT服务器; matplotlib:Python中常用的可视化库,用于绘制实时图像; numpy:Python中常用的数学计算库,用于处理数据。 安装方法: pip…

    python 2023年5月19日
    00
  • 用Python实现艺术绘画,人生苦短,代码赛高

    用Python实现艺术绘画 艺术绘画是一个创造性的过程,包括绘画、素描和绘画。借助Python编程语言,您可以模拟艺术绘画的过程。该过程包括以下步骤:1.导入所需的库-您需要导入NumPy、OpenCV和Matplotlib等库来执行图像处理任务。2.加载图像-您可以使用OpenCV加载图像。3.应用过滤器和效果-您可以使用NumPy和OpenCV应用过滤器…

    python 2023年5月11日
    00
  • Python numpy.dtype.kind()函数

    numpy.dtype.kind()函数用于返回给定数据类型的字符代码。字符代码用于表示给定数据类型的种类,其取值范围为’b’, ‘i’, ‘u’, ‘f’, ‘c’, ‘S’, ‘a’, ‘V’。 具体解释如下: ‘b’:布尔型 ‘i’:带符号整型 ‘u’:无符号整型 ‘f’:浮点型 ‘c’:复数浮点型 ‘S’:字符串类型 ‘a’:定长字符串类型 ‘V’:…

    python-answer 2023年3月25日
    00
  • Python中常用操作字符串的函数与方法总结

    Python中常用操作字符串的函数与方法总结 在Python中,字符串是不可变的数据类型,这意味着一旦一个字符串被创建,它不能被修改。在处理字符串时,经常需要使用一系列的函数和方法来完成各种操作,包括截取、查找、替换等等。在本文中,我们将总结一些常用的操作字符串的函数与方法,以便于我们更高效地处理字符串。 字符串的创建与访问 首先,我们可以使用单引号或双引号…

    python 2023年5月18日
    00
  • pygame学习笔记(3):运动速率、时间、事件、文字

    下面是“pygame学习笔记(3):运动速率、时间、事件、文字”完整攻略。 运动速率 在游戏中,元素的运动往往需要控制速率。pygame中,使用pygame.time.Clock()和clock.tick()来控制游戏帧率,从而控制元素的运动速率。 import pygame pygame.init() screen = pygame.display.set…

    python 2023年5月18日
    00
  • 基于Python的学生信息管理系统

    注意,该项目为Python基础语法的一个综合,项目数据库。 #学员管理系统 “”” 学员管理系统 1. 系统简介 需求:进入系统显示系统功能界面,功能如下: 1、添加学员 2、删除学员 3、修改学员信息 4、查询学员信息 5、显示所有学员信息 6、退出系统 系统共6个功能,用户根据自己需求选取。 “”” #定义学生信息为列表类型的全局变量 info = []…

    python 2023年4月17日
    00
  • Python 实现定积分与二重定积分的操作

    下面是Python实现定积分和二重定积分操作的完整攻略: Markdown表达式 在给出使用Python实现定积分和二重积分的操作之前,我们先介绍一下如何在Markdown中表达数学公式和符号。Markdown使用LaTeX语言的数学公式表示法,可以很方便地表示各种数学公式和符号。 行内公式:公式在行内,用 $ 符号包围。 例如:$f(x)=\int_a^b…

    python 2023年6月3日
    00
  • 150行python代码实现贪吃蛇游戏

    实现贪吃蛇游戏的Python代码需要用到Pygame等第三方库。而本攻略基于原生Python提供的Tkinter库实现,可以让Python初学者快速了解代码的原理和运行流程。本篇攻略将从两个层面来说明代码的实现过程。 1. 游戏界面设计 首先需要导入Tkinter库和random库,随机生成食物的坐标。在创建游戏窗口的时候,设置窗口的标题和大小,并将窗口垂直…

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