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

yizhihongxing

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爬虫实例_利用百度地图API批量获取城市所有的POI点

    确认项目需求 在准备进行Python爬虫的实现之前,我们首先需要明确项目的需求,即我们要爬取的数据是什么,爬取的方式是什么。 本示例中,项目需求是要利用百度地图API获取指定城市的所有POI点,POI点包括名称、经纬度信息等。而爬取的方式是利用Python程序来通过百度地图API实现。 准备工作 在进行爬虫实现之前,我们需要进行一些准备工作,包括: 注册百度…

    python 2023年5月14日
    00
  • Python如何将list中的string转换为int

    以下是“Python如何将list中的string转换为int”的完整攻略。 1. 使用for循环和int()函数 可以使用for循环遍历列表中的每个元素,并使用int()函数将其转换为整数。 my_list = [‘1’, ‘2’, ‘3’, ‘4’, ‘5’] new_list = [] for item in my_list: new_list.app…

    python 2023年5月13日
    00
  • python实战之Scrapy框架爬虫爬取微博热搜

    Python实战之Scrapy框架爬虫爬取微博热搜 什么是Scrapy框架? Scrapy是一个基于Python的开源网络爬虫框架。它使用Twisted来实现异步处理和多线程,支持从网页中提取内容并存储为结构化数据。Scrapy的核心组件包括:引擎(engine)、调度器(scheduler)、下载器(downloader)、爬虫(spider)、数据项(i…

    python 2023年5月18日
    00
  • Python:使用for循环插入数据而没有超时错误

    【问题标题】:Python: Insert data with for loop without timeout errorPython:使用for循环插入数据而没有超时错误 【发布时间】:2023-04-05 03:34:01 【问题描述】: 我需要按年份批量插入数据,但我得到了 %Server% ping 错误:超时。连接已关闭,重新连接。 而且我不知道…

    Python开发 2023年4月6日
    00
  • python-Twitter-api

    【问题标题】:python-Twitter-apipython-Twitter-api 【发布时间】:2023-04-02 00:39:01 【问题描述】: import twitter client = twitter.Api() client = twitter.Api(username=’uname’, password=’password’) upd…

    Python开发 2023年4月8日
    00
  • 无法在 Fedora 中安装 python-devel 包

    【问题标题】:unable to install python-devel package in fedora无法在 Fedora 中安装 python-devel 包 【发布时间】:2023-04-05 05:08:01 【问题描述】: 我试图使用 pip 安装 psycopg 并遇到此错误 在 psycopg/psycopgmodule.c:27:0 中…

    Python开发 2023年4月5日
    00
  • Python利用字典和列表实现学生信息管理系统

    让我们开始讲解“Python利用字典和列表实现学生信息管理系统”的完整攻略。 1. 系统功能需求 我们先来明确一下系统的功能需求,才能更好地实现。 这个学生信息管理系统需要完成的功能包括:- 添加学生信息- 删除学生信息- 修改学生信息- 查询学生信息- 展示所有学生信息 2. 需要用到的数据结构 在实现这个学生信息管理系统的时候,我们需要用到 Python…

    python 2023年5月13日
    00
  • 解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题

    以下是关于解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题的完整攻略: 问题描述 Windows 7操作系统上安装Python3.7.1后,启动Python时可能会提示缺少.dll文件。这个问题通常是由于缺Microsoft Visual C++ 2015 Redutable Package导致的。解决这个问题可以帮助我们正常地使…

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