本文主要介绍python元组和列表的区别,帮助你更好的理解和学习python数据类型的相关知识。感兴趣的朋友可以了解一下。
静态数据类型
静态数据类型是指不可修改的数据类型,即只读数据类型。到目前为止学习的静态数据类型是string和tuple。
当使用[]操作符修改字符串和元组时,Python会抛出错误类型的异常消息,我们可以在交互模式下验证:
content=“静态数据类型”
内容[0]=S
回溯(最近一次呼叫):
模块中文件' stdin '的第1行
名称错误:名称' S '未定义
数字=(1,2,3,4,5)
数字[0]=6
回溯(最近一次呼叫):
模块中文件' stdin '的第1行
type error:“tuple”对象不支持项分配
可变数据类型
与静态数据类型相对的是可变数据类型,其中集合中的元素可以被修改。列表,以及后面要介绍的复合数据类型:字典、集合、类类型等。都是可变数据类型。我们还可以在交互模式下验证:
数字=[1,2,3,4,5]
id(数字)
2749153235976
数字[0]=6
数字
[6, 2, 3, 4, 5]
id(数字)
2749153235976
从交互模式的输出中,可以通过[]操作符列表类型进行分析和修改。修改后的列表和未修改的列表具有相同的id值,表明它们是同一个列表。
内置的id函数可以输出id值,也就是内存地址。
元组与列表的区别
在使用元组的场景中,可以用列表来代替,那么为什么要将元组定义为数据类型呢?在本节的内容中,从两个方面进行了分析:
(1) 元组是静态,只读的数据类型
元组和列表的核心区别在于,元组是静态的,列表是动态变化的。当我们定义变量时,如果数据对象具有静态和只读属性,我们应该使用元组,否则我们应该使用列表。以生活中的购物清单为例。在购物清单中,我们可以随时修改清单,比如添加某个商品或者从购物车中删除某个商品。
购物清单是可修改的,动态的,现在用Python代码模拟:
# __desc__=用Python代码模拟购物清单的添加和删除
#定义shopping_list来表示购物清单。
Shopping_list=['消毒剂','面膜','白酒']
#面膜缺货,已从购物车中移除。
Shopping_list.remove ('mask ')
# shopping_list的输出是['消毒剂','白酒']
#从购物车中添加向日葵口服液
Shopping_list.append('葵花口服液')
# shopping_list的输出是['消毒液','白酒','葵花口服液']
一周有七天,从周一到周日,不会有其他时间单位。一周包含的时间显然是静态的。这时,用元组来定义一周的所有时间是非常自然的:
# __desc__=一周由元组表示。
#定义变量week,表示一周。
Week=('星期一','星期二','星期三','星期四','星期五','星期六','星期日')
我们也可以通过列表来表示一周:
# __desc__=一周由一个列表表示。
#定义变量week,表示一周。
Week=['星期一','星期二','星期三','星期四','星期五','星期六','星期日']
因为列表是动态数据类型,所以可以在程序中随时修改。例如,一个粗心的程序员在一周中增加了一个星期八:
# __desc__=粗心的程序员加了一周或八周。
#定义变量week,表示一周。
Week=['星期一','星期二','星期三','星期四','星期五','星期六','星期日']
Week.append('星期一')
# week的输出是['星期一','星期二','星期三','星期四','星期五','星期六','星期日','星期一']
一周包括一周的第八天,这显然不符合日常逻辑。通过使用元组,可以避免这个问题。一旦元组被修改,Python将抛出一个异常。
(2) 元组的自动解包
有了这个特性,给多个变量赋值就非常简单了。
代码示例:
# __desc__=通过解包元组来优雅地赋值。
# define returned_values表示函数的返回值。
returned_values=(True,1314)
状态,结果=返回值
# state的值为真,result的值为1314。
在Python的函数中,可以返回多个值,实际返回的是一个元组。然后,您可以使用元组的自动解包来逐个分配返回值。
知识要点
(1)静态数据类型是指不可修改的数据类型,即只读数据类型。到目前为止学习的静态数据类型是string和tuple。
(2)与静态数据类型相比,动态数据类型支持对集合中元素的修改。列表以及其他复合数据类型:字典、集合、类类型等。都是动态数据类型。
这就是python元组和列表区别的细节。更多关于python元组和列表的信息,请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。