python中list 和 tuples的区别

来源:luqidong 发布时间:2014-04-02 20:57:14 点击数:
除了tuples是不可变也有一个语义差别应指导其使用。tuples是异构的数据结构(即,他们的作品有不同的含义) ,而list是均匀的序列。tuples 有结构,列出有秩序。
使用这种区别使得代码更加清晰,易懂。
一个例子是对的页码和行号的参考位在书上,例如:
my_location = (42, 11)  # page number, line number
然后,您可以使用它作为一个在字典中的键存储上的位置说明。另一方面列表可以被用于存储多个位置。当然有人可能会想添加或删除列表中的位置,因此它是有道理的列表是可变的。在另一方面,它可能没有意义改变了位置的tuples的页面数量,同时保持行号不变 - 这会给您一个完全新的位置。另一方面,可能存在其中它非常有意义纠正只是行数(无需更换整个tuples)的情况。
有关于这个问题的一些有趣的文章,如: “ Python tuples不只是常量列表”或“了解tuples与列表中的Python” 。 Python官方文档也提到了这一点( “tuples是不可变的,并且通常包含一个异类序列...”) 。
在这样的Haskell是静态类型语言中的tuples一般值有不同的类型和tuples的长度必须是固定的。在一个列表中的值都具有相同的类型和长度是不固定的。这样的区别是很明显的。
最后是namedtuple在Python中,这是有道理的,因为一个tuples已经应该有结构。这强调的想法,tuples是一个轻量级的替代类和实例。
本文由免费oa系统78oa原创,转载请注明出处。