python列表[list]和元组(tuple)详情
作者:Python热爱者 发布时间:2022-05-23 01:14:31
列表和元组:
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的每一个元素本身也不能变.
来源:https://blog.csdn.net/qdPython/article/details/126469268


猜你喜欢
- CSS入门很简单,规则不多,写法也比较灵活,因此也带来了很多有创意的写法。跟IE一样,很好的容错性,像《 边框样式写法总结 》所说的bord
- 1.索引问题索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数 的SQL性能问题。本章节将对MySQL中的索引
- from StringHelper import PadLeft for x in range(1,10):&nbs
- 背景目前项目在移动端上,首推使用微信小程序。各项目的小程序访问数据有必要进行采集入库,方便后续做统计分析。虽然阿拉丁后台也提供了趋势分析等功
- 今天学习了小程序实现路由跳转,我在操作的时候在控制台出现以下错误信息。翻译过来的意思是:(承诺中)微程序错误{“errMsg”:“n”avi
- 如下所示:import sysfrom PyQt5.QtWidgets import QMainWindow, QTextEdit, QAc
- 如下所示:list = [5,6,7,9,1,4,3,2,10]list.index(9)out:3同时可以返回列表中最大值的索引list.
- wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概。首
- 随着传统的数据库、计算机网络和数字通信技术的飞速发展,以数据分布存储和分布处理为主要特征的分布式数据库系统的研究和开发越来越受到人们的关注。
- 不是说while就不用,比如前面所列举而得那个猜数字游戏,在业务逻辑上,用while就更容易理解(当然是限于那个游戏的业务需要而言)。另外,
- 最近因为数学建模3天速成Python,然后做了一道网络的题,要画网络图。在网上找了一些,发现都是一些很基础的丑陋红点图,并且关于网络的一些算
- 本文实例讲述了Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法。分享给大家供大家参考。具体实现方法如下:# 这里将一个
- 一 简单介绍wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信
- 前言正则表达式的基础知识就不说了,有兴趣的可以点击这里,提取一般分两种情况,一种是提取在文本中提取单个位置的字符串,另一种是提取连续多个位置
- 1、引言小 * 丝:鱼哥,你说咱们发快递时填写的地址信息,到后台怎么能看清楚写的对不对呢?小鱼:这种事情还要问? 你没在电商行业混过??小 * 丝:
- sql server 2008 r2 express是什么版本express是精简版的意思 r2是2008的第2版本,推荐使用。SQL Se
- 本文实例讲述了python开发之文件操作用法。分享给大家供大家参考,具体如下:先来看看官方API:os-Miscellaneous oper
- 对于电脑上没有Visual C++ 2019.exe 而导致安装不了Mysql Install的朋友,此详细步骤会更加明了。一、下载(官方网
- vue Print.js打印页面样式不出现解决方案加上这句就好了!完美!vue-print-nb打印问题总结1、表格的列缺失(element
- 前言上一篇博文我们讲到了节流函数的应用场景,我们知道了节流函数可以用在模糊查询、scroller、onresize等场景;今天这篇我们来讲防