[python skill]python中tuple 和list 的区别

简介: 引用1:https://blog.csdn.net/infty/article/details/42392571感谢~ 只看定义的话,Tuple会被理解为元素不可变(immutable)的List。

引用1:https://blog.csdn.net/infty/article/details/42392571

感谢~

 

只看定义的话,Tuple会被理解为元素不可变(immutable)的List。但如果只是如此,完全没有必要引入一个新的类型。

 

这里有一个很有意思的讨论。其中举了个例子。比如你去散步,在每一时刻,你都可以记录下自己的位置,比如$(x,y)$,这是一个Tuple;把这个坐标点放到一个List中,然后每隔一段时间,增添新的坐标点。这样很符合逻辑。但反过来就讲不通了。这反映了Tuple内的各元素之间很强的互补关系--它们共同描述了一个个体。在这个例子中,就是一个坐标点;你如果试图去掉其中的$x$坐标,从两维降到一维,这个Tuple就没有意义了--没人知道它代表那个点。这是Tuple元素不可增添或删减的原因。

 

另一方面,各坐标点之间的关系则只有先后关系,没有强烈的逻辑关联。所以你如果去掉List的末尾一个坐标点--没问题,现在的List表示的是在你到达倒数第二点前的路线。

 

用上述讨论中的一句话总结,就是“List有(先后)次序,Tuple有(逻辑)结构”。

 

另一个说法也很有道理,Tuple是一个微型的Class。毫无疑问,Class中的所有元素都是为了描述同一个事物而存在。

 

(按照最小化的思想,Tuple的确不必引入。但从理解一段代码的角度,看到一个Tuple,我们马上就知道它在描述一件事物,逻辑上显然更加清晰易懂。)

 

引用2:https://blog.csdn.net/null_kt/article/details/53467223

感谢~

#只创建一个tuple  需要加,消除歧义
a_tuple=(2,)
#在tuple中创建list
mixed_tuple=(1,2,['a','b'])
print("mixed_tuple"+str(mixed_tuple))
#如果在tuple中嵌套list tuple中的list是可以被更改的 
mixed_tuple[2][0]='c'
print(mixed_tuple)
#tuple是一个不可以改变的list 一旦创建 一个tuple 就不能以任何的方式改变它


#tuple 与list 的相同之处
#定义 tuple 与定义list的方式相同,除了整个元素集用小括号包围的而不是方括号
#tuple的元素与list一样按定义的次序进行排序 tuple的索引与list一样从0开始,所以
#一个非空的tuple的一个元素总是t[0]
#负数索引与list一样从tuple的尾部开始计数
#与list一样分片(slice)也可以使用 .注意当分割一个list时,会得到一个新的list;当分割
#所以当分割一个tuple时,会得到一个新的tuple
#
#tuple不存在的方法
# 不能从一个tuple增加元素。所以没有append 和extend方法
#不能用tuple删除元素,所以没有remove和pop方法 
#然而可以使用in 来查看一个元素是否存在tuple中
#

##用tuple的好处
#tuple比list操作速度快.如果定义了一个值的常量集,并且唯一要用它做的是不断地遍历
#则用tuple代替list
#如果对不需要修改的数据进行"写保护",它可以使代码更安全.使用tuple而不是list如同拥有一个
#隐含的assert语句,说明这一数据是常量.如果必须要修改这些值.可以把tuple转换list
#的转换

#tuple与list的转换
#tuple可以转换成list,反之亦然.内置的tuple函数接受一个list,并返回一个有着相同元素的tuple.而list函数
#接收一个tuple返回一个list.从效果上看,tuple冻结一个list,而list解冻一个tuple
#
#tuple的其他应用
#一次赋多值
#>>>v=('a','b','e'))
#>>>(x,y,z)=v
#解释:v是一个三元素的tuple并且(x,y,z)是一个三变量的tuple.将一个tuple赋值给另一个tuple会按顺序将v的每一
#个值赋给每一个变量

 

目录
相关文章
|
9月前
|
存储 索引 Python
python tuple的所有基础知识
python tuple的所有基础知识
801 0
|
7月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
311 4
|
索引 Python
Python错误 - 'list' object is not callable 的问题定位与解决
出现编程问题并不可怕,关键在于是否可以从中学习与成长。遇到'list' object is not callable这样的错误,我们不仅需要学会应对,更需要了解其背后的原因,避免类似的问题再次出现。记住,Python的强大功能和灵活性同时也意味着我们需要对其理解更准确,才能更好的使用它。
1498 70
|
11月前
|
存储 Java C语言
Java List 复制:浅拷贝与深拷贝方法及区别
我是小假 期待与你的下一次相遇 ~
1087 1
|
存储 开发者 Python
Python 中的数据结构与其他编程语言数据结构的区别
不同编程语言都有其设计理念和应用场景,开发者需要根据具体需求和语言特点来选择合适的数据结构
651 151
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
312 17
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
556 14
|
机器学习/深度学习 缓存 Linux
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
2456 0
|
存储 索引 Python
元组(Tuple)在Python编程中的应用与实例
元组(Tuple)在Python编程中的应用与实例
1059 2
|
存储 缓存 Python
Python中的列表(List)和元组(Tuple)是两种重要的数据结构
【7月更文挑战第12天】Python中的列表(List)和元组(Tuple)是两种重要的数据结构
462 1

热门文章

最新文章

推荐镜像

更多