【python】list和tuple的区别

简介: list和tuple的区别
1. list(列表)

list是一种有序的集合,可以随时对集合进行添加删除插入操作。

1.1. list中的元素,索引从0开始,0为第一个元素,当索引超出范围(本例索引大于5时,总共有6个元素,索引为0,1,2,3,4,5)会报错,索引不能越界,最后一个元素的索引是len(num)-1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2. 如果要取最后一个元素,除了计算索引位置,还可以用-1做索引直接取到最后一个元素(倒数第一)

在这里插入图片描述
当然,取倒数第二个和倒数第三个索引分别为-2,-3,以此类推
在这里插入图片描述

1.3. 使用append()可以在list的尾部添加元素

==注意是在尾部添加==
在这里插入图片描述
==当然,也可以在尾部添加一个列表或者字典==
在这里插入图片描述

1.4. 使用insert()可以将元素插入添加到指定位置

在这里插入图片描述

1.5. 使用pop()可以删除list最后一个元素(默认的情况下)

==注意使用pop(i) # i是索引,可以删除指定位置的元素==
在这里插入图片描述

1.6. 想要替换某个元素,可以直接给对应索引号位置的元素赋值

在这里插入图片描述
==list里面的元素类型可以不同(上面的举例就可以看出来),不仅如此,它的元素还可以是另一个list,嵌套的形式==

2. tuple(元组)
2.1. tuple是一种有序列表,它和list非常相似,但是tuple一旦初始化就不能修改,而且没有append()、insert()这些方法,可以获取元素但不能赋值变成另外的元素。

在这里插入图片描述
在这里插入图片描述

2.2. 定义空的tuple

定义空的tuple可以写成()
在这里插入图片描述
定义只有一个元素的tuple必须写成(元素,) ### 逗号不能丢
在这里插入图片描述

2.3. tuple要如何改变里面的元素呢?

在这里插入图片描述
==其实不是tuple可以改变,而是tuple指向的list中的元素可以改变(id不是不变的,对象的内存地址)。==

3. 总结
  • list中是可变的,tuple不可变(id,对象的内存地址),tuple没有insert, pop,append方法
  • 定义只有一个元素的tuple的时候,必须加逗号,否则不会被认为是tuple,而被识别为括号,比如,a = (1) 会被识别为数字1, (1,)这样才被识别为一个元组,只有一个元素,数字1

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

参考

https://blog.csdn.net/weixin_39431596/article/details/78730731

[https://www.runoob.com/python/python-func-id.html [id函数]](https://www.runoob.com/python/python-func-id.html)

相关文章
|
4月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
238 4
|
10月前
|
索引 Python
Python错误 - 'list' object is not callable 的问题定位与解决
出现编程问题并不可怕,关键在于是否可以从中学习与成长。遇到'list' object is not callable这样的错误,我们不仅需要学会应对,更需要了解其背后的原因,避免类似的问题再次出现。记住,Python的强大功能和灵活性同时也意味着我们需要对其理解更准确,才能更好的使用它。
1291 70
|
8月前
|
存储 Java C语言
Java List 复制:浅拷贝与深拷贝方法及区别
我是小假 期待与你的下一次相遇 ~
849 1
|
10月前
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
277 17
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
327 9
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
1615 1
|
运维 关系型数据库 Java
PolarDB产品使用问题之使用List或Range分区表时,Java代码是否需要进行改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
517 1
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
313 3

推荐镜像

更多