python 中 关于reverse() 和 reversed()的用法介绍

转自:https://blog.csdn.net/gymaisyl/article/details/83785853

reverse():

是python中列表的一个内置方法(也就是说,在字典,字符串或者元组中,是没有这个内置方法的),用于列表中数据的反转;
exp:

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

打印结果:

[4, 3, 2, 1]

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

reversed():
而reversed()是python自带的一个方法,准确说,应该是一个类;
关于reversed()官方解释:

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

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

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

下面通过几个案例进行说明:
1.列表的反转:

>>> bb = [1,3,5,7]          
>>> print(list(reversed(bb)))
[7, 5, 3, 1]

2.元组的反转:

>>> aa = (1, 2, 3)           
>>> print(tuple(reversed(aa)))         
(3, 2, 1)

3.字符串的反转

>>> aa = 'asbdamfgh'          
>>> ''.join(reversed(aa)) 不可套用str(reversed(aa))
'hgfmadbsa'

4. 切片反转:

>>> aa[::-1]        
'hgfmadbsa'

5. 反转操作画叉叉

num_in = int(input())-1
str_in = []
for i in range(num_in):
    str_in.append('+'*i+'X'+'+'*(num_in*2+1-2-2*i)+'X'+'+'*i)
tmp = ['+'*num_in+'X'+'+'*num_in]
str_out = str_in + tmp + str_in[::-1]
# str_out = str_in + tmp + list(reversed(str_in))
len_out = len(str_out)
for i in range(len_out):
    print(str_out[i])

结果:

3
×+++×
+×+×+
++×++
+×+×+
×+++× 

你可能感兴趣的:(python)