python 的元组和list 怎么理解 5C

python 的元组和list 怎么理解?
最近学习python,但是比起之前多了一个元组概念,希望能有个比较清晰的描述帮助我理解

21个回答

list 是可变的元组是不可变的。
元组可做字典的键 但是list是不可以的。

列表——一系列有序项目的集合,用[ ]表示,项目之间用 , 间隔,列表中项目可添加、移除或搜索,为一种可变的(Mutable)数据类型。
元组——将多个对象保存到一起,可用()表示(也可不用),项目间用 , 间隔,区别于列表,元组不可编辑或更改,为不可变的

相当于一个表格
元组相当于一行(所以它的长度不变)
list相当于行的集合,也就是表格。

实际上元组相当于一个简化的,只读的结构体。只是这个结构体没有字段名。

比如传统地,我们定义一个point结构体。或者time结构体
但是使用元组,我们可以把x y或者 hour minute second定义成二元组或者三元组。这也是元组最常用的使用场景。

而list,比如我们有10个点,那么points = [(x1, y1), (x2, y2), ...]

1.列表Python 有一些复合数据类型, 用来把其它值分组. 最全能的就是list,它可以写为在方括号中的通过逗号分隔的一列值(项). 列表的项并不需要是同一类型.1 >>> a = ['spam ', 'eggs', 100 , 1234]2 >>> a3 ['spam', 'eggs ', 100 , 1234]
2.元组Python的元组与列表类似,不同之处在于元组的元素不能修改。元组一般使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

如下实例:tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
显然,列表的权限远大于元组

元组不可变,类比于C中的数组;
列表可变,类比于C中的指针

ajjrx
AYu丶 回复caozhy: 只是为了方便学过C的人理解元组和列表,功大于过
接近 2 年之前 回复
ajjrx
AYu丶 回复jassica_66: 我只是说对应关系可以这样理解,这样说只是为了方便理解,你们这样真的好么
接近 2 年之前 回复
jassica_66
jassica_66 python中的列表的元素可以是不同的数据类型,而C语言中的数组,必须是相同的数据类型
大约 2 年之前 回复
qq_41538111
qq_41538111 https://www.cnblogs.com/xinzhiyu/p/5670219.html
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 这就是瞎说了,元组不可变说的是,一个元组创建完不能改变元组中的值,也不能改变元组长度。c的数组不能改变长度,但是可以通过下标修改元素值。
大约 2 年之前 回复

Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
可以参考菜鸟教程中的讲解,链接:
http://www.runoob.com/python/python-tuples.html

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推

1.list是一种有序的集合,可以随时添加和删除其中的元素;用[ ]表示;
2.另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改;用( ) 表示;
比如: name = ('zhangs', 'lis')
它没有append(),insert()这样的方法;

tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

看到很多人都在胡乱回答,我再强调下。
list和tuple的使用场景不同。

list描述的是一个集合,每个元素是平等的。
tuple描述的是一个事物,元组的每个元素是这个事物的一个特征。

以points = [(x1, y1), (x2, y2), ...]为例
points是列表,里面可以有n个点。这些点是一个集合
[x1, y1]是一个元组,这个元组的每个值是这个点的特征,一个点是由2个变量,x y坐标共同决定的。

至于他们语法上的区别,是因为它们根本是不同用途而造成的。

如同饭碗和痰盂,他们绝对不是大小的差异,而是不同用途的两个东西。

共21条数据 1 3 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问