【python基础】reverse和reversed函数及使用

时间:2022-12-23 14:55:30

一、reverse

reverse()是python中列表的一个内置方法(在字典、字符串和元组中没有这个内置方法),用于列表中数据的反转

例子:

lista = [1, 2, 3, 4]
lista.reverse()
print(lista)

打印结果:

[4, 3, 2, 1]

其实,lista.reverse()操作的返回值是一个None,其作用的结果需要通过打印被作用的列表才可以查看出具体的效果

二、reversed

reserved()是python内置函数之一,其功能是对于给定的序列(包括列表、元组、字符串以及 range(n)区间),该函数可以返回一个逆序序列的迭代器(用于遍历该逆序序列)

关于reversed()官方解释:

reversed(sequence) -> reverse iterator over values of the sequence
Return a reverse iterator

即:
reverse(sequence) ->反转迭代器的序列值
返回反向迭代器

也就是说,在经过reversed()的作用之后,返回的是一个把序列值经过反转之后的迭代器,所以需要通过遍历,或者List或者next()等方法获取作用后的值

reserved()函数的语法格式如下:

reversed(seq)

其中,seq可以是列表,元素,字符串以及range()生成的区间列表

reversed()函数的基本用法:

#将列表进行逆序
print([x for x in reversed([1,2,3,4,5])])
#将元组进行逆序
print([x for x in reversed((1,2,3,4,5))])
#将字符串进行逆序
print([x for x in reversed("abcdefg")])
#将 range() 生成的区间列表进行逆序
print([x for x in reversed(range(10))])

执行结果:

[5, 4, 3, 2, 1]
[5, 4, 3, 2, 1]
['g', 'f', 'e', 'd', 'c', 'b', 'a']
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

除了使用列表推导式的方式,还可以使用list()函数,将reversed()函数逆序返回的迭代器,直接转换成列表。例如:

#将列表进行逆序
print(list(reversed([1,2,3,4,5])))

程序执行结果为:

[5, 4, 3, 2, 1]

再次强调,使用reversed()函数进行逆序操作,并不会修改原来序列中元素的顺序,例如:

a = [1,2,3,4,5]
#将列表进行逆序
b = list(reversed(a))

print("a=",a)
print("b=",b)

执行结果:

a= [1, 2, 3, 4, 5]
b= [5, 4, 3, 2, 1]