Python 中列表和元组有哪些区别
列表
list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目。列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表。一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的。
列表是可以嵌套的。
元组
元祖和列表十分相似,不过元组是不可变的。即你不能修改元组。元组通过圆括号中用逗号分隔的项目定义。
元组通常用在使语句或用户定义的函数能够安全的采用一组值的时候,即被使用的元组的值不会改变。元组可以嵌套。
字典
字典类似于你通过联系人名称查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
python列表和元组的区别
元组和列表是类似的, 只是元组不可修改内容
注意这里指的是不可修改元组元素的指向, 你可以修改内容指向的内容
>>>?lst?=?[1,?2,?3]#?定义列表>>>?a?=?(1,?2,?lst,?4)#?注意元组a的a[2]是一个列表
>>>?a
(1,?2,?[1,?2,?3],?4)
>>>?a[2]?=?4#?试图修改元组元素的指向,?报错
Traceback?(most?recent?call?last):
File?"",?line?1,?in?a[2]?=?4
TypeError:?'tuple'?object?does?not?support?item?assignment
>>>?a[2][0]?=?0#?不修改元组元素的指向的元素,?但是修改指向的内容
>>>?a
(1,?2,?[0,?2,?3],?4)
>>>?a[2].append(5)#?不修改元组元素的指向的元素,?但是修改指向的内容
>>>?a
(1,?2,?[0,?2,?3,?5],?4)
字典完全区别于列表和元组
因为字典使用hash表来存储, 所以只有能够进行hash运算的才能作为键值
个人认为, 一般不可变的都能作为键, 比如str/tuple/None/function.列表不能作为键
最后, 由于字典是hash表算法{字典查找O(1), 列表遍历O(n)}, 在数据量巨大的时候, 字典的查找效率出奇的高
List list是一种处理一组有序项目的数据结构,也就是说,您可以在一个列表中存储一系列项目。 元组是Scala语言中非常有用的容器对象。元组非常类似于列表,但是元组是不可变的。列表控件可以在四种不同的视图中显示项目,而元组适用于许多场景。List list是一种处理有序项目集的数据结构,也就是说,您可以在一个列表中存储一系列项目。列表中的项目应该用方括号括起来,这样python就知道您在指示一个列表。创建列表后,您可以添加、删除或搜索列表中的项目。由于可以添加或删除项目,所以我们说列表是可变数据类型,也就是说,这种类型是可以改变的。列表可以嵌套。元组非常类似于列表,但是元组是不可变的。也就是不能修改元组。元组由括号中逗号分隔的项定义。元组通常用于使语句或用户定义的函数能够安全地采用一组值,也就是说,所使用的元组的值不会改变。元组可以嵌套。列表控件可以在四种不同的视图中显示项目。您可以将项目分组到有或没有列标题的列中,并显示附带的图标和文本。例如,ListView控件用于将名为ListItem对象的列表项组织成以下四种不同视图之一:1 .大(标准)图标2。小图标3。清单4。“报表视图”属性确定控件使用哪个视图来显示列表中的项。比如组件[1]的列表控件,有完整的列表框、多栏下拉列表框、拆分样式等。它可以管理列表中项目的排序方法和选定项目的外观。Tuple是Scala语言中非常有用的容器对象。像列表一样,元组是不可变的;但是与列表不同,元组可以包含不同类型的元素。比如一个list只能写成List[Int]或者List[String],但是一个tuple可以同时有Int和String。元组适用于许多场景,例如,如果您需要在一个方法中返回多个对象。Java中的做法是创建一个已经包含多个返回值的JavaBean,Scala只能返回元组。而且做起来也很简单;把元组实例化需要的对象放在括号里,用逗号隔开就行了。元组实例化后,可以通过点、下划线和基于1的索引来访问其中的元素。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!