转自:https://blog.youkuaiyun.com/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
×+++×
+×+×+
++×++
+×+×+
×+++×