汕头网站建设哪里找,百度代做seo排名,多语种网站建设公司,Wordpress源码下载站目录
11.4.1 元组与列表的区别
11.4.2 可变数据类型
11.4.3 元组与列表的区别
11.4.4 知识要点
11.4.5 系统学习python 11.4.1 不可变数据类型
不可变数据类型是指不可以对该数据类型进行修改#xff0c;即只读的数据类型。迄今为止学过的不可变数据类型有字符串#x…目录
11.4.1 元组与列表的区别
11.4.2 可变数据类型
11.4.3 元组与列表的区别
11.4.4 知识要点
11.4.5 系统学习python 11.4.1 不可变数据类型
不可变数据类型是指不可以对该数据类型进行修改即只读的数据类型。迄今为止学过的不可变数据类型有字符串元组。 在使用[]操作符对字符串元组进行修改时Python会抛出类型错误的异常信息我们可以在交互模式中进行验证: content static data type content[0]S Traceback (most recent call last): File stdin, line 1, in module NameError: name S is not defined numbers (1,2,3,4,5) numbers[0] 6 Traceback (most recent call last): File stdin, line 1, in module TypeError: tuple object does not support item assignment Python解释器抛出了TypeError的异常信息TypeError表示类型错误的意思。之所以是类型错误很好理解因为字符串或元组这种类型不支持对元素进行修改。
11.4.2 可变数据类型
与不可变数据类型相对的是可变数据类型在可变数据类型中可以对集合中的元素进行修改。列表以及在后面将要介绍的复合数据类型字典集合类类型等都是可变的数据类型。我们同样可以在交互模式中进行验证: numbers [1,2,3,4,5] id(numbers) 2749153235976 numbers[0]6 numbers [6, 2, 3, 4, 5] id(numbers) 2749153235976 从交互模式的输出中可以分析出可以通过[]操作符列表类型进行修改。修改后的列表与修改前的列表它们具有相同的id值说明是同一个列表。 调用内置的id函数可以得到对象的id值在CPython中id值即内存地址。 11.4.3 元组与列表的区别
在使用元组的场景中都可以使用列表来进行代替那么为什么还要定义元组这种数据类型在本小节的内容中通过两个方面来进行分析:
(1) 元组是静态只读的数据类型
元组与列表的核心区别在于元组是静态的不可变的列表是动态的, 可变的。我们在定义变量时如果该数据对象具备静态只读的属性应当使用元组否则应当使用列表。以生活中的购物清单来进行举例在购物清单中我们可以随时对清单进行修改比如添加某一个商品或从购物车中移除某一个商品。购物清单是可修改的动态的现在通过Python代码来进行模拟:
Python
# __desc__ 通过Python代码模拟购物清单的添加和删除# 定义shopping_list表示购物清单
shopping_list [消毒液, 口罩, 白酒]# 口罩已经断货从购物车中移除
shopping_list.remove(口罩)
# shopping_list的输出为[消毒液, 白酒]# 从购物车中添加葵花口服液
shopping_list.append(葵花口服液)
# shopping_list的输出为[消毒液, 白酒, 葵花口服液]
一周有七天从周一到周日不会再包含其它的时间单位此时通过元组来定义一周的所有时间在使用上非常自然
Python
# __desc__ 通过元组来表示一周# 定义变量week表示一周
week (周一, 周二, 周三,周四, 周五, 周六,周日)我们同样可以通过列表来表示一周
# __desc__ 通过列表来表示一周# 定义变量week表示一周
week [周一, 周二, 周三,周四, 周五, 周六,周日]
由于列表是可变的数据类型所以可以在程序中随时对列表进行修改
Python
# __desc__ 粗心的程序员添加了个周八
# 定义变量week表示一周
week [周一, 周二, 周三,周四, 周五, 周六,周日]
week.append(周八)
# week的输出为[周一, 周二, 周三,周四, 周五, 周六,周日周八]
一周的时间里包含周八这显然不符合日常逻辑。而使用元组可以避免这样的问题, 一旦对元组进行修改Python就会抛出类型错误的异常信息。
(2) 元组的自动解包
在11.1节的内容中讲到了可以对元组进行解包。利用这样的特性可以非常优雅地对多个变量进行赋值。
代码实例:
Python
# __desc__ 通过元组的解包来优雅地赋值# 定义returned_values表示函数的返回值
returned_values (True, 1314)
state, result retured_values# state的值为True, result的值为1314
我们在后面的课程中会系统学习Python中的函数在函数中返回多个值实质返回的是一个元组。利用元组的自动解包就可以在函数调用结束后对变量进行优雅地赋值。
11.4.4 知识要点 (1) 静态数据类型是指不可以对该数据类型进行修改即只读的数据类型。迄今为止学过的静态数据类型有字符串元组。 (2) 与静态数据类型相对的是动态数据类型动态数据类型支持对集合中的元素进行修改。列表以及其它复合数据类型字典集合类类型等都是动态的数据类型。 11.4.5 系统学习python 薯条老师简介资深技术专家技术作家著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客http://www.chipscoco.com, 系统学习后端爬虫数据分析机器学习、量化投资。