python中列表和元组之间有什么区别?

如题所述

除了元组是不可变的之外,还应有语义上的区别来指导它们的用法。元组是异构数据结构(即它们的条目具有不同的含义),而列表是同类序列。元组具有结构,列表具有顺序。
使用这种区别可以使代码更加明确和易于理解。
一个示例是成对的页和行号,以成对参考书中的位置,如:
my_location = (42, 11) # page number, line number

然后,可以将其用作字典中的键来存储有关位置的注释。另一方面,列表可用于存储多个位置。自然地,人们可能想在列表中添加或删除位置,因此使列表可变是有意义的。另一方面,从现有位置添加或删除项目没有意义-因此,元组是不可变的。
在某些情况下,可能想更改现有位置元组中的项目,例如在页面的各行中进行迭代时。但是元组不变性迫使您为每个新值创建一个新的位置元组。从表面上看,这似乎很不方便,但是使用这样的不可变数据是值类型和函数式编程技术的基石,它可以具有很多优点。
官方Python文档也提到了这一点
“组是不可变的,并且通常包含一个异类序列…”。
在像Haskell这样的静态类型语言中,元组中的值通常具有不同的类型,并且元组的长度必须固定。在列表中,所有值都具有相同的类型,并且长度不是固定的。因此区别非常明显。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-07-08

Python列表及元组的相同点

1. 索引相同,从左到右都为0~n-1;

2. 拼接相同,都可以用+拼接;

3. 计数相同,都使用len()函数统计元素个数、使用count()函数统计指定元素的出现次数;

4. 都属于有序序列;

5. 都可以使用del删除;

6. 都可以使用*来使本身重复;

7. 可以强制转换且切片方法一致;

8. 都可以使用for循环来进行元素遍历、索引遍历以及枚举遍历;

9. 使用index()方法获取指定元素的索引;

10. 使用运算符in测试是否包括某个元素。

Python列表及元组的不同点

1. 类型不同,元组类型为tuple,列表类型为lsit;

2. 修改方式不同,元组不能修改,列表可以根据索引来修改元素值;

3. 删除方式不同,列表使用pop()等函数删除元素,而元组不能删除元素,只能用del删除整个元组;

4. 查找方式不同,列表只能用Index()函数来查看,元组只能用index()函数来查看。

第2个回答  2021-07-03
主要区别就是列表是可变的,元祖是不可变的;
列表可以添加,修改,删除元素可以排序,倒序等,但是以上元祖都不能做;
所以如果你的数据创建后可能要修改,就使用列表存放,
如果数据创建后不再改动,则用元祖即可。
相似回答