python 翻转用法

在 python3 中,reversed 函数也能够逆转列表。

其实,在 python2.7 中就存在内置函数 reverse 可以用来翻转列表,不过在 python3 中已经删去该函数。

相比于 reverse 函数只能反转列表,reversed 函数则可以翻转多种序列,包括tuple、list、string、range等类型。

由于 reversed 函数实际上是一个类,因此其直接输出的是对应序列值反转后的迭代器,需要由对应类型的方法获取反转后的值。


# 列表反转
a = [1, 2, 3, 4, 5]
print(reversed(a))  # 输出:<list_reverseiterator object at 0x00000233F1C96588>
print(list(reversed(a)))  # 输出:[5, 4, 3, 2, 1]
# 元组反转
a = (1, 2, 3, 4, 5)
print(reversed(a))  # 输出:<reversed object at 0x000001FE9B3A6588>
print(tuple(reversed(a)))  # 输出:(5, 4, 3, 2, 1)
# 字符串反转
a = '12345'
print(reversed(a))  # 输出:<reversed object at 0x000001FAD17E2438>
print(str(reversed(a)))  # 输出:<reversed object at 0x000001FAD17E2438>
print("".join(reversed(a)))  # 输出:54321

注意:

list、tuple、range 类型均可相互转换,但str类型不同;
str类型反转序列输出采用"".join(reversed(string)))方法,即将反转序列按顺序添加进新的字符串序列中。
不过,reversed 函数只能对已有序列做完全反转,若只是想对序列其中一部分进行反转,需要先截取对应序列再反转,也可以用 range 函数遍历所需部分序列。

除了以上两种方法外,对于字符串序列,还可以用切片反转方法进行反转。

比如:


a = 'hello world'
print("".join(reversed(a)))  # 输出:dlrow olleh
print(a[::-1])  # 输出:dlrow olleh
print(a[::-2])  # 输出:drwolh

一个字符串的逆序函数

def nixv(s):
    sum = " "                          #定义空字符串
    for i in reversed(range(len(s))): #i逆序遍历
        sum = sum + s[i]              #使单独的字符串组合成整体
    return sum                        #返回字符串
s = input("请输入一个字符串:")
print(nixv(s))
 
# 方法二
s='wqrwqr123'
print(s[::-1])# 切片
 
# 方法三
from functools import reduce
s='123456'
result =reduce(lamada x,y:y+x,s)
print(result)
 
# 方法四
def fan(str1):
    len1=len(str1)
    for i in range(len1):
        print(str1[len1-1-i],end='')
fan('asdfg')

posted @ 2023-06-05 18:09  赏金猎人小熊  阅读(115)  评论(0编辑  收藏  举报