python列表[list]和元组(tuple)详情

 更新时间:2022年08月23日 14:28:16   作者:Python热爱者  
这篇文章主要介绍了python列表[list]和元组(tuple)详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

列表和元组:

list是一种有序的集合,可以随时添加和删除其中的元素.
1,创建一个普通列表

List = ['Jack','Bob','Lucy','Rose']
  • Append() 末尾追加元素
  • conunt()列表中某个元素的数量

extend()可以在列表尾部追加包含多个值的另一个序列,而list的append()只能添加一个值.

可以说list的extend方法是有扩展列表的作用:

list1 = [1,2,3]
list2 = [7,8,9]
list1.extend(list2)
print(list1)   # [1, 2, 3, 7, 8, 9]

index() 获取列表中某个元素的索引值,list的索引值从0开始,同样可以用索引找到元素 list[index],当索引超出了范围时 ,Python会报一个IndexError错误,(索引错误)所以,要确保索引不要越界,有的同学说了 那元素多了,又不知道列表中有多少个元素,我想取最后一个怎么办呢 第一种办法,先获取这个列表的长度,

例如:len(list2) 第二个办法:list2[-1]

  • insert()在某个索引位置添加某个元素
  • pop()删除元素 传递的是待删除元素的
  • indexremove()传递待删除元素,如果多个元素一样,默认删除第一个
x = ['a', 'b', 'a', 'c', 'd']
x.remove('a')
print (x) # ['b', 'a', 'c', 'd']
  • reverse() 是把原列表中的元素顺序从左至右的重新存放,而不会对列表中的参数进行排序整理.
  • 如果需要对列表中的参数进行整理,就需要用到列表的另一种排序方式
  • sort正序排序sort() 许多python初学者,对sort()方法比较糊涂.有的时候会需要一个排序好的列表,而又想保存原有未排序列表,他们会这么操作:
a = [5,7,6,3,4,1,2]
b = a.sort()
print( b)  # None

这个时候问题出现了,变量b得到的是一个空值.那么想要得到排序好的列表,又想保留原列表怎么办呢?列表sorted()方法可以帮你实现.

sorted()即可以保留原列表,又能得到已经排序好的列表sorted()操作方法如下:

a = [5,7,6,3,4,1,2]
b = sorted(a)
print('sorted(a)',a)   # [5, 7, 6, 3, 4, 1, 2]
print('b = sorted(a)',b)  # [1, 2, 3, 4, 5, 6, 7]

Tuple 另一种有序列表叫元组: tuple和list非常类似,但是tuple一旦初始化就不能修改,例如:

tuple =[1,2,3,4]
tuple.append(5)
Traceback (most recent call last):
  File "<pyshell#59>", line 1, in <module>
    tuple.append(5)
AttributeError: 'tuple' object has no attribute 'append'

现在,这个tuple不能变了,它也没有append(),insert()这样的方法.其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1]

不可变的tuple有什么意义?
因为tuple不可变,所以代码更安全.如果可能,能用tuple代替list就尽量用tuple.
tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:
如果要定义一个空的tuple,可以写成():但是,要定义一个只有1个元素的tuple,如果你这么定义:定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1.

所以,只有1个元素的tuple定义时必须加一个逗号,来消除歧义:

Python在显示只有1个元素的tuple时,也会加一个逗号,以免你误解成数学计算意义上的括号.'可变的’tuple:

>>> tuple = (1,2,3,[4,5,6])
>>> tuple
(1, 2, 3, [4, 5, 6])
>>> tuple[3][0]=1
>>> tuple
(1, 2, 3, [1, 5, 6])
>>> tuple[3][1]=2
>>> tuple[3][2]=3
>>> tuple
(1, 2, 3, [1, 2, 3])

表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素.tuple一开始指向的list并没有改成别的list,所以,tuple所谓的"不变"是说,tuple的每个元素,指向永远不变.即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

理解了"指向不变"后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变.

到此这篇关于python列表[list]和元组(tuple)详情的文章就介绍到这了,更多相关python列表和元组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用Python-iGraph如何绘制贴吧/微博的好友关系图详解

    利用Python-iGraph如何绘制贴吧/微博的好友关系图详解

    这篇文章主要给大家介绍了关于利用Python-iGraph如何绘制贴吧/微博好友关系图的相关资料,文中显示介绍了在windows系统下安装python-igraph的步骤,然后通过示例代码演示了绘制好友关系图的方法,需要的朋友可以参考下。
    2017-11-11
  • Linux系统(CentOS)下python2.7.10安装

    Linux系统(CentOS)下python2.7.10安装

    这篇文章主要为大家详细介绍了Linux系统(CentOS)下python2.7.10安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Django框架之中间件MiddleWare的实现

    Django框架之中间件MiddleWare的实现

    这篇文章主要介绍了Django框架之中间件MiddleWare的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Python While循环语句实例演示及原理解析

    Python While循环语句实例演示及原理解析

    这篇文章主要介绍了Python While循环语句实例演示及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • python gensim使用word2vec词向量处理中文语料的方法

    python gensim使用word2vec词向量处理中文语料的方法

    这篇文章主要介绍了python gensim使用word2vec词向量处理中文语料的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python二分法查找算法实现方法【递归与非递归】

    python二分法查找算法实现方法【递归与非递归】

    这篇文章主要介绍了python二分法查找算法实现方法,结合实例形式分析了Python使用递归与非递归算法实现二分查找的相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • 20个Python中正则表达式的应用与技巧小结

    20个Python中正则表达式的应用与技巧小结

    正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,本文我们将探讨 Python 中 re 模块的应用和一些技巧,希望可以帮助您更好地理解和利用正则表达式
    2024-04-04
  • Python中Pandas库提供的函数pd.DataFrame的基本用法

    Python中Pandas库提供的函数pd.DataFrame的基本用法

    pandas库中的pd.DataFrame()函数用于创建一个DataFrame对象,它是一个二维表格数据结构,每列可以是不同的数据类型(数值、字符串、布尔值等),下面这篇文章主要给大家介绍了关于Python中Pandas库提供的函数pd.DataFrame的基本用法,需要的朋友可以参考下
    2024-03-03
  • Django中使用Redis配置缓存的方法步骤

    Django中使用Redis配置缓存的方法步骤

    本文主要介绍了Django中使用Redis配置缓存的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • 解决使用Spyder IDE时matplotlib绘图的显示问题

    解决使用Spyder IDE时matplotlib绘图的显示问题

    这篇文章主要介绍了解决使用Spyder IDE时matplotlib绘图的显示问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04

最新评论