什么是列表(list)?
List是python中的一种数据类型,它由一组有序的元素组成。支持字符、数字、字符串甚至也可以包含列表(列表中有列表,嵌套),元素间用逗号进行分隔。列表用[]进行标识。
在实际应用中,有时候需要将列表中元素的位置进行反转处理,可以使用如下几种方式:
列表对象的reverse()方法:
列表对象自带的方法,最容易使用;此方法没有返回值,执行后直接将列表中的元素进行原地逆序排列;
伪代码如下:
list_k = ['1','2','3',4,5,6]
list_k.reverse()
print(list_k)
pyhon内置的reversed函数
此函数不对原列表做任何修改,而是返回一个迭代对象;
list_k = ['1','2','3',4,5,6]
print(reversed(list_k))
打印如下:
<list_reverseiterator object at 0x02D23F40>
因为是一个迭代器,所以无法打印出想要的结果,需要使用list函数转换一下;
伪代码如下:
list_k = ['1','2','3',4,5,6]
list_kr = reversed(list_k)
list_k = list(list_k)
使用列表的切片
当我们想要访问一个列表中在某个范围元素的时候,我们就需要使用到切片的操作;我们可以使用"变量名[起始索引:结束索引]"的方式来访问列表中某个范围的元素;Python列表中的索引有两种,一种是正向索引,另一种是反向索引;
列表的反转主要用到反向索引,即负步长切片;
伪代码如:
list_k = ['1','2','3',4,5,6]
list_r = list_k[::-1]
print(list_r)
主要使用的切片语法:[x:y:z] x默认0,为切片开始位置,y为切片结束位置,默认列表的长度,z:为切片的步长,默认1,-1表示从最后的一个元素开始切片;
使用列表生成式(List Comprehensions)
列表生成式是python内置的比较简单但是功能强大的用于生成list的生成式
语法: [元素 for循环 if语句]
元素和for循环不能省略,但是,if语句可以省略
使用列表生成式反转列表的代码如下:
list_k = ['1','2','3',4,5,6]
list_r = [list_k[len(list_k)-i-1] for i in range(len(list_k))]
print(list_r)
使用sorted()函数
如果列表是有序的,可以使用sorted()函数进行翻转;
sorted() 作为 Python 内置函数之一,其功能是对序列进行排序。
基本语法格式如下:
list = sorted(iterable, key=None, reverse=False)
其中,iterable 表示指定的序列,key 参数可以自定义排序规则;reverse 参数指定以升序(False,默认)还是降序(True)进行排序。
sorted() 函数会返回一个排好序的列表。
其中key 参数和 reverse 参数是可选参数,即可以使用,也可以忽略。
伪代码如下:
list_k = [4,5,6]
lisk_r = sorted(list_k)
print(lisk_r)
总结
以上是几种常用的反转方法;