python中列表和元组之间有什么区别?
3个回答
2021-04-20 · 学动漫、设计、电竞、电商、短视频、软件等
关注
展开全部
除了元组是不可变的之外,还应有语义上的区别来指导它们的用法。元组是异构数据结构(即它们的条目具有不同的含义),而列表是同类序列。元组具有结构,列表具有顺序。
使用这种区别可以使代码更加明确和易于理解。
一个示例是成对的页和行号,以成对参考书中的位置,如:
my_location = (42, 11) # page number, line number
然后,可以将其用作字典中的键来存储有关位置的注释。另一方面,列表可用于存储多个位置。自然地,人们可能想在列表中添加或删除位置,因此使列表可变是有意义的。另一方面,从现有位置添加或删除项目没有意义-因此,元组是不可变的。
在某些情况下,可能想更改现有位置元组中的项目,例如在页面的各行中进行迭代时。但是元组不变性迫使您为每个新值创建一个新的位置元组。从表面上看,这似乎很不方便,但是使用这样的不可变数据是值类型和函数式编程技术的基石,它可以具有很多优点。
官方Python文档也提到了这一点
“组是不可变的,并且通常包含一个异类序列…”。
在像Haskell这样的静态类型语言中,元组中的值通常具有不同的类型,并且元组的长度必须固定。在列表中,所有值都具有相同的类型,并且长度不是固定的。因此区别非常明显。
使用这种区别可以使代码更加明确和易于理解。
一个示例是成对的页和行号,以成对参考书中的位置,如:
my_location = (42, 11) # page number, line number
然后,可以将其用作字典中的键来存储有关位置的注释。另一方面,列表可用于存储多个位置。自然地,人们可能想在列表中添加或删除位置,因此使列表可变是有意义的。另一方面,从现有位置添加或删除项目没有意义-因此,元组是不可变的。
在某些情况下,可能想更改现有位置元组中的项目,例如在页面的各行中进行迭代时。但是元组不变性迫使您为每个新值创建一个新的位置元组。从表面上看,这似乎很不方便,但是使用这样的不可变数据是值类型和函数式编程技术的基石,它可以具有很多优点。
官方Python文档也提到了这一点
“组是不可变的,并且通常包含一个异类序列…”。
在像Haskell这样的静态类型语言中,元组中的值通常具有不同的类型,并且元组的长度必须固定。在列表中,所有值都具有相同的类型,并且长度不是固定的。因此区别非常明显。
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()函数来查看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主要区别就是列表是可变的,元祖是不可变的;
列表可以添加,修改,删除元素可以排序,倒序等,但是以上元祖都不能做;
所以如果你的数据创建后可能要修改,就使用列表存放,
如果数据创建后不再改动,则用元祖即可。
列表可以添加,修改,删除元素可以排序,倒序等,但是以上元祖都不能做;
所以如果你的数据创建后可能要修改,就使用列表存放,
如果数据创建后不再改动,则用元祖即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询