python 的元组和list 怎么理解

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

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

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

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

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

比如传统地,我们定义一个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中的指针

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坐标共同决定的。

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

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

list中的内容可以改变,tuple中的内容不能改变,除此之外其他的操作相同。

元组是(),列表是[]。元组是不能修改,只能查询,列表可以增删改查。

列表用[]定义,元组用()定义。元组的功能,列表都有。详细功能请看链接:
https://www.cnblogs.com/xinzhiyu/p/5670219.html

元组和列表操作上,最重要的区别就是元组不可以修改第一层的值,列表可以随时修改。一定意义上元组你可以理解为常量。

上面说到第一层,是相对嵌套而言。如下面例子,元组t里面嵌套了一个列表。

t = ([1,2], 4, 'list')) 我说的第一层,就是通过t[ ]可以访问得到的如

t[0] = [1,2] t[1] = 4 这样访问得到的数据是不能更改的。使用t[0] = [5,6]会报错。

但是 t[0][0] = 5 这样赋值是不会报错的。

t[0]是访问元组t的第一个元素

而t[0][0]是访问列表t[0]的第一个元素,因而可以修改。

第一次答题,希望能帮助到你

图片说明

元祖不可变 列表可变 但是两者都可以用角标取值 还有 元祖由于不可变 可以结合字典的键来理解

list是存储数据的一种数据结构,和Array一个级别;元组可以看作是一个对象(类似于 javabean什么的,虽然用过python,但对java比较了解)
例如:
(135,"heheda",3.14)
可以看作如下
class bean:
number = 0
string = ""
double = 0.0
def init(self,number,string,double):
self.number = number
self.string=string
self.double=double

list用法很随意,基本上其他的语言中的list用法,都可以;
tuple是不可变的,不可变的东西,资源可以保存那些不变的数据,比如说坐标,函数的参数,用户数据等等

元组是不可变类型
列表是可变类型
t1=() #空元组
l1=[] #空列表

http://blog.csdn.net/zoe9698/article/details/78059461

元组一旦定义就不能再变化,可认为是字典;
列表可认为是可变数组

1、你要知道他们都可以表示一组数据(当然都是序列)。
2、表示方法:list用[]表示;tuple用()表示。
3、list是可变的数据类型,常用于表示可以修改的一组数据。
4、tuple是不可变的数据类型,常用于表示不可修改的一组数据。
5、即使相互嵌套依然要记住list可变,tuple不可变。
举例
'a',1,('qwe','asd')
仅针对嵌套在内部的list和tuple而言。