元组和列表的区别
Python元组和Python列表数据类似,都是线性表。唯一不同的是,Python元组赋值后所存储的数据不能被程序修改,可以将元组看作是只能读取数据不能修改数据的列表。
一 声明与赋值
声明一个元组并赋值的语法与列表相同,不同之处是元组使用小括号,列表使用方括号,元素之间也是用英文逗号分隔。需要注意的是,当元组只有一个元素时,需要在元素的后面加一个英文逗号分隔符,以防止与表达式中的小括号混淆。这是因为小括号既可以表示元组,又可以表示表达式中的优先级算符,这就容易产生歧义。
二 访问
元组的访问和列表相同,可以直接使用下标索引访问元组中的单个数据项,也可以使用截取运算符访问子元组。访问运算符包括“[]”和“[:]”运算符,用于访问元组中的单个数据项,或者一个子元组。
三 更新元组
元组是不可修改类型,虽然在程序运行过程中无法对元组的元素进行插入和删除运算。但元组可以通过再构造一个新的元组替换旧的元组,来实现元素的插入和删除。
四 元组的合并
可以把多个元组合并成一个元组,合并后的元组元素顺序保持不变。合并后的元组为一个新的元组,原有的元组保持不变。
例4:元组合并的例子
例4输出结果如下图所示。
五 遍历
元组的遍历方式和列表相同,都是应用for循环语句遍历元组的元素。
六 操作元组的方法
和列表一样,适用于列表的方法也同样适用于元组的操作。但由于元组的不可修改特性,用于列表的排序、替换、添加等方法,在元组中不能使用。可以使用的主要方法有计算元组个数、求元组中最大值、求元组中最小值等方法。
七 元组的不可修改特性
元组的不可修改特性可能会让元组变得非常不灵活,因为元组作为容器对象,很多时候需要对容器的元素进行修改,这在元组中是不允许的。元组可以说是列表数据的一种补充,数据的不可修改性在程序设计中也是非常重要的。例如,当需要将数据作为参数传递给API,但不希望API修改参数时,就可以传递一个元组类型;再如,当需要定义一组Key时,也可以采用元组类型。因此可以说元组和列表是互为补充的数据类型。
总结
元组与列表相同,也是容器对象,可以存储不同类型的内容。元组与列表有两个不同点。第一个不同点是元组的声明使用小括号,而列表使用方括号,当声明只有一个元素的元组时,需要在这个元素的后面添加英文逗号;第二个不同点是元组声明和赋值后,不能像列表一样添加、删除和修改元素,也就是说元组在程序运行过程中不能被修改。
用于列表的排序、替换、添加等方法也不适用于元组,适用于元组的主要运算有元组的合并、遍历、求元组的最大值和最小值等操作方法。