python元组和列表逆序_Python容器:列表与元组
欢迎关注「issnail」
“一起学习,一起成长!”
与字符串不同的是,元组和列表并不要求所有元素的种类相同,每个元素都可以是任何python类型的对象。列表可变,赋值后可插入或删除其中的元素。元组不可变,赋值后不可更改。
1.列表1.1使用[]或list[]创建列表
使用[]创建列表:
>>>empty=[]
>>>weekdays=['Monday','Tuesday','Wednesday']
使用list()创建列表:
>>>another_empty_list=list() #返回空列表
1.2使用list()将其他数据类型转换成列表
将一个字符串转换成了由单个字母组成的列表
>>>list('cat')
['c','a','t']
将一个元组转换成了列表
>>>a_tuple=('ready','fire','aim')
>>>list(a_tuple)
['ready','fire','aim']
使用split()可以依据分隔符将字符串切割成由若干子串组成的列表:
>>>birthday='1/6/1952'
>>>birthday.split('/')
['1','6','1952']
>>>splitme='a/b//c/d///e'
>>> splitme.split('/')
['a', 'b', '', 'c', 'd', '', '', 'e'] #返回空串元素
>>>splitme='a/b//c/d///e'
>>> splitme.split('//')
['a/b', 'c/d', '/e']
1.3使用[offset]获取元素
和字符串一样,通过偏移量可以从列表中提取对应位置的元素:
>>> marxes=['Groucho','Chico','Harpo']
>>> marxes[0]
'Groucho'
>>> marxes[1]
'Chico'
>>> marxes[2]
'Harpo'
负偏移量代表从尾部开始计数:
>>> marxes[-1]
'Harpo'
>>> marxes[-2]
'Chico'
>>> marxes[-3]
'Groucho'
1.4包含列表的列表
列表中的列表是一个元素
>>> small_birds=['hummingbird','finch']
>>> extinct_birds=['dodo','passenger pigeon','Norwegian Blue']
>>> carol_birds=[3,'French hens',2,'turtledoves']
>>> all_birds=[small_birds,extinct_birds,'macaw',carol_birds]
>>> all_birds
[['hummingbird', 'finch'], ['dodo', 'passenger pigeon', 'Norwegian Blue'], 'macaw', [3, 'French hens', 2, 'turtledoves']]
>>> all_birds[0]
['hummingbird', 'finch']
>>> all_birds[1]
['dodo', 'passenger pigeon', 'Norwegian Blue']
双重索引
>>> all_birds[1][0]
'dodo'
1.5使用[offset]修改元素
可以通过赋值对列表中元素进行修改:
>>> marxes=['Groucho','Chico','Harpo']
>>> marxes[2]='Wanda'
>>> marxes
['Groucho', 'Chico', 'Wanda']
通过这种方式无法修改字符串中的指定字符,因为字符串是不可变的。
1.6指定范围并使用切片提取元素
>>> marxes=['Groucho','Chico','Harpo']
>>> marxes[0:2]
['Groucho', 'Chico']
列表的切片仍然是一个列表。
>>> marxes[::2]
['Groucho', 'Harpo']
>>> marxes[::-2]
['Harpo', 'Groucho']
利用切片可以巧妙地实现列表逆序:
>>> marxes[::-1]
['Harpo', 'Chico', 'Groucho']
1.7使用append()添加元素至尾部
列表是可变的:
>>> marxes=['Groucho','Chico','Harpo']
>>> marxes.append('Zeppo')
>>> marxes
['Groucho', 'Chico', 'Harpo', 'Zeppo']
1.8使用extend()或+=合并列表
使用extend()可以将一个列表合并到另一个列表中。
>>> marxes=['Groucho','Chico','Harpo','Zeppo']
>>> others=['Gummo','Karl']
>>> marxes.extend(others)
>>> marxes
['Groucho', 'Chico', 'Harpo', 'Zeppo', 'Gummo', 'Karl']
也可以使用+=:
>>> marxes=['Groucho','Chico','Harpo','Zeppo']
>>> others=['Gummo','Karl']
>>> marxes+=others
>>> marxes
['Groucho', 'Chico', 'Harpo', 'Zeppo', 'Gummo', 'Karl']
如果错误地使用了append(),那么others会被当成一个单独的元素进行添加,而不是将其中的内容进行合并:
>>> marxes=['Groucho','Chico','Harpo','Zeppo']
>>> others=['Gummo','Karl']
>>> marxes.append(others)
>>> marxes
['Groucho', 'Chico', 'Harpo', 'Zeppo', 'Gummo', 'Karl', ['Gummo', 'Karl']]
1.9使用insert()在指定位置插入元素
append()函数只能将新元素插入到列表尾部,而使用insert()可以将元素插入到列表的任意位置。指定偏移量为0可以插入列表头部。如果指定的偏移量超过了尾部,则会插入到列表最后,就如同append()一样,这一操作不会产生Python异常。
>>> marxes.insert(3,'Gummo')
>>> marxes
['Groucho', 'Chico', 'Harpo', 'Gummo', 'Zeppo', 'Gummo', 'Karl']
1.10使用del删除指定位置的元素
>>> del marxes[-1]
>>> marxes
['Groucho', 'Chico', 'Harpo', 'Gummo', 'Zeppo', 'Gummo']
当列表中一个元素被删除后,位于它后面的元素会自动往前移动填补空出的位置,且列表长度减1。
>>> marxes[2]
'Harpo'
>>> del marxes[2]
>>> marxes
['Groucho', 'Chico', 'Gummo', 'Zeppo', 'Gummo']
>>> marxes[2]
'Gummo'
1.11使用remove()删除具有指定值的元素
如果不确定或不关心元素在列表中的位置,可以使用remove()根据指定的值删除元素:
>>> marxes=['Groucho','Chico','Harpo','Zeppo']
>>> marxes.remove('Harpo')
>>> marxes
['Groucho', 'Chico', 'Zeppo']
1.12使用pop()获取并删除指定位置的元素
使用pop()同样可以获取列表中指定位置的元素,但在获取完成后,该元素会被自动删除。如果你为pop()指定了偏移量,它会返回偏移量对应位置的元素;如果不指定,则默认使用-1。
>>> marxes=['Groucho','Chico','Harpo','Zeppo']
>>> marxes.pop()
'Zeppo'
>>> marxes
['Groucho', 'Chico', 'Harpo']
>>> marxes.pop(1)
'Chico'
>>> marxes
['Groucho', 'Harpo']
计算机术语:
如果使用append()来添加元素到尾部,并通过pop()从尾部删除元素,实际上,实现了一个被称为LIFO(后进先出)队列的数据结构。我们更习惯称之为栈(stack)。如果使用pop(0)来删除元素则创建了一个FIFO(先进先出)队列。这两种数据结构非常有用,你可以不断接收数据,并根据需求对最先到达的数据(FIFO)或最后到达的数据(LIFO)进行处理。
1.13使用index()查询具有特定值的元素位置
如果想知道等于某一个值的元素位于列表的什么位置,可以使用index()函数进行查询:
>>> marxes=['Groucho','Chico','Harpo','Zeppo']
>>> marxes.index('Chico')
1
1.14使用in判断值是否存在
判断一个值是否存在于给定的列表中由许多方式,其中最具有Python风格的是使用in:
>>> marxes=['Groucho','Chico','Harpo','Zeppo']
>>> 'Groucho' in marxes
True
>>> 'Bob' in marxes
False
同一个值可能出现在列表的多个位置,但只要出现一次,in就回返回True:
>>> words=['a','deer','a','female','deer']
>>> 'deer' in words
True
1.15使用count()记录特定值出现的次数
使用count()可以记录某一个特定值在列表中出现的次数:
>>> words=['a','deer','a','female','deer']
>>> 'deer' in words
True
>>> words.count('a')
2
>>> words.count(1)
1.16使用join()转换为字符串
>>> friends=['Harry','Hermione','Ron']
>>> separator='*'
>>> joined=separator.join(friends)
>>> joined
'Harry*Hermione*Ron'
>>> separated=joined.split(separator)
>>> separated
['Harry', 'Hermione', 'Ron']
1.17使用sort()重新排列元素
在实际应用中,经常需要将列表中的元素按值排序,Python为此提供了两个函数:
1.列表方法sort()会对原列表进行排序,改变原列表内容;
2.通用函数sorted()则会返回排好序的列表副本,原列表内容不变。
a.数字元素,默认升序。使用reverse=True改变为降序排列。
b.字符串元素按字母表顺序排序。
>>> marxes=['Groucho','Chico','Harpo','Zeppo']
>>> marxes.pop()
'Zeppo'
>>> marxes
['Groucho', 'Chico', 'Harpo']
>>> sorted_marxes=sorted(marxes)
>>> sorted_marxes
['Chico', 'Groucho', 'Harpo']
sorted_marxes是一个副本,它的创建并不会改变原始列表的内容:
>>> marxes
['Groucho', 'Chico', 'Harpo']
但对marxes列表调用列表函数sort()则会改变它的内容:
>>> marxes.sort()
>>> marxes
['Chico', 'Groucho', 'Harpo']
能够自动地互相转换的多种类型元素列表,也可使用sort():
>>> numbers=['2','1','4.0','3']
>>> numbers.sort()
>>> numbers
['1', '2', '3', '4.0']
默认的排序是升序的,通过添加参数reverse=True可以改变为降序排序:
>>> numbers.sort(reverse=True)
>>> numbers
['4.0', '3', '2', '1']
1.18使用len()获取长度
len()可以返回列表长度:
>>> marxes=['Groucho', 'Chico', 'Harpo']
>>> len(marxes)
3
1.19使用=赋值,使用copy()复制
>>> a=[1,2,3]
>>> a
[1, 2, 3]
>>> b=a
>>> b
[1, 2, 3]
>>> a[0]='surprise'
>>> a
['surprise', 2, 3]
>>> b
['surprise', 2, 3]
b与a实际上指向的是同一个对象,因此,无论我们是通过a还是b来修改列表的内容,其结果都会作用于双方:
>>> b
['surprise', 2, 3]
>>> b[0]='I hate surprise'
>>> b
['I hate surprise', 2, 3]
>>> a
['I hate surprise', 2, 3]
>>> len(marxes)
3
通过下面任意一种方法,都可以将一个列表的值赋值到另一个新的列表中:
1.列表copy()
2.list()转换函数
3.列表分片[:]
>>> a=[1,2,3]
>>> b=a.copy()
>>> c=list(a)
>>> d=a[:]
再次注意,在这个例子中,b、c、d都是a的赋值:它们是自身带有值的新对象,与原始的a所指向的列表对象[1,2,3]没有任何关联。改变a不影响b、c和d的复制。
>>> a[0]='integer lists are boring'
>>> a
['integer lists are boring', 2, 3]
>>> b
[1, 2, 3]
>>> c
[1, 2, 3]
>>> d
[1, 2, 3]
2.元组
与列表类似,元组也是由任意类型元素组成的序列。与列表不同的是,元组是不可变的,这意味着一旦元组被定义,将无法再进行增加、删除或修改元素等操作。因此,元组就像是一个常量列表。
2.1使用()创建元组
>>> empty_tuple=()
>>> empty_tuple
()
创建包含一个或多个元素的元组时,每一个元素后面都需要跟着一个逗号,即使只包含一个元素也不能省略:
>>> one_marx='Groucho',
>>> one_marx
('Groucho',)
如果创建的元组所包含的元素数量超过1,最后一个元素后面的逗号可以省略:
>>> marx_tuple='Groucho','Chico','Harpo'
>>> marx_tuple
('Groucho', 'Chico', 'Harpo')
可以一口气将元组赋值给多个变量:
>>> marx_tuple=('Groucho','Chico','Harpo')
>>> a,b,c=marx_tuple
>>> a
'Groucho'
>>> b
'Chico'
>>> c
'Harpo'
有时候这个过程被称为元组解包。
可以利用元组在一条语句中对多个变量的值进行交换,而不需要借助临时变量:
>>> password='swordfish'
>>> icecream='tuttifrutti'
>>> password,icecream=icecream,password
>>> password
'tuttifrutti'
>>> icecream
'swordfish'
tuple()函数可以用其他类型的数据来创建元组:
>>> marx_list=['Groucho','Chico','Harpo']
>>> tuple(marx_list)
('Groucho', 'Chico', 'Harpo')
2.2元组与列表
在许多地方都可以用元组代替列表,但元组的方法函数与列表相比要少一些。元组的优势:
元组占用的空间较小
你不会意外修改元组的值
可以将元组用作字典的键
命名元组可以作为对象的迭代
函数的参数是以元组形式传递的
「亲,如果笔记对您有帮助,收藏的同时,记得给点个赞、加个关注哦!感谢!」
「文中代码均亲测过,若有错误之处,欢迎批评指正,一起学习,一起成长!」
python语言及其应用
python元组和列表逆序_Python容器:列表与元组相关推荐
- python元组和列表逆序_Python元组和列表你真的用对了吗?
对于Python来说,列表可谓是用到的非常多的数据结构之一了,但是Python还有另外一个数据结构叫做元组,直观表现来说,元组就像是不可变的列表,那么问题来了,元组和列表的区别是什么呢?什么时候应该用 ...
- python中sorted函数逆序_Python中sorted函数的用法(转)
[Python] sorted函数 我们需要对List.Dict进行排序,Python提供了两个方法 对给定的List L进行排序, 方法1.用List的成员函数sort进行排序,在本地进行排序,不返 ...
- python如何输出整数逆序_python字符串类型及操作
字符串索引&切片用法 Str[]对字符串进行索引,括号内为获取第几个元素 使用[M:N:K]根据步长对字符串切片 <字符串>[M:N]是可以缺失的,M缺失表示至开头,N缺失表示至结 ...
- python实现数的逆序_python怎么逆序
python中字符串数组如何逆序排列?下面给大家介绍几种方法: 1.数组倒序: 原始元素的倒序排列 (1)切片>>> arr = [1,2,3,4,3,4] >>> ...
- python怎么将字符串逆序_python中如何把一个字符串顺序逆序反转的几种方法?
如 a='123456789' 反转成 a='987654321' 第一种方法:使用字符串切片 >>> a='123456789' >>> a = a[::-1] ...
- python列表逆序输出_Python 让列表逆序排列的 3 种方式
让列表逆序排列是我们编程时常碰到的问题,比如现在有一些客户的姓名是将拼音的首字母按 A - Z 排列的,而你现在想找一个姓张( Z )的客户,你就有了将姓名逆序排列的需求了.而在 Python 中,将 ...
- python列表方法语句_Python中列表和元组的相关语句和方法讲解
列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...
- python第k序元素查找列表_【Python】第8次练习:列表——程序填空题 -合并队列、列表元素零的移动、列表逆序输出、第K序元素查找...
[Python]第8次练习:列表--程序填空题 -合并队列.列表元素"零"的移动.列表逆序输出.第K序元素查找 1.程序填空题 -合并队列 题目:某班男女两队同学各若干人,男生已按 ...
- python 逆序_python中逆序
python中的list的sort方法怎样逆序输出 很简单啊, sort 支持 reverse 参数,看下面的例子,分别按照正常顺序 (升序)排列,以及按照逆序排列. >>> l = ...
最新文章
- Where to Store your JWTs – Cookies vs HTML5 Web Storage--转
- Windows APC学习笔记(二)—— 挂入过程执行过程
- Spring中对于WebApplicationInitializer的理解
- mysql 设置按天分表_MySQL 优化实战记录
- 给Source Insight做个外挂系列之一--发现Source Insight
- linux中自动挂载脚本,LIUNX一键自动挂载脚本,宝塔磁盘LIUNX一键分区磁盘 | 帮助信息-动天数据...
- Weblogic 10.3.5在64位Windows系统下的安装和配置
- 计算任意两个圆的交点
- Python:pip下载库后导入Pycharm的方法
- Application 用法
- 反射中的SetValue和GetValue
- 【python第三方库】playwright简要入门
- Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Netw
- c语言绝对值大小并输出原值,c语言中绝对值大小的比较
- Win10提示“PL2303HXA自2012已停产,请联系供货商”的解决方法
- 公众号上怎么转换html格式,教你完美复制别人的公众号内容和图片到自己的号...
- Flutter Icon
- python数据分析比较好的书籍_python数据分析比较好的书籍推荐|陇川制作项目盈利能力分析...
- 2018年中国互联网企业100强
- 支付宝生活缴费商业项目标准版-赖国荣-专题视频课程
热门文章
- Gabor滤波器为什么能实现频率域加窗
- correl函数相关系数大小意义_correl(correl函数相关系数大小意义)
- 国内有哪些比较靠谱的云服务器?
- 中国程序化购买广告解析:RTB/DSP/Ad Exchange/SSP/DMP,思维导图
- ES6新特性总结-面试必会
- Docker容器化技术笔记
- C语言串口编程收发数据 并实现AT指令的收发 可变参数控制串口属性 树莓派4G模块
- 数组、链表、LinkedList源码分析、跳表
- python无法写入文件夹_python write无法写入文件的解决方法
- 前端JS获取当前日期