python 序列的逆序

答案:Python中逆序序列常用切片[::-1]、reversed()函数和list.reverse()方法,切片适用于所有序列且不修改原对象,reversed()返回迭代器需转换,list.reverse()仅用于列表并直接修改原列表。

在 Python 中,对序列进行逆序操作有多种方式,适用于列表、字符串、元组等可迭代对象。下面介绍几种常用方法。

使用切片逆序

这是最简洁的方式,适用于所有序列类型(列表、字符串、元组)。

# 列表逆序
lst = [1, 2, 3, 4, 5]
reversed_lst = lst[::-1]
print(reversed_lst)  # 输出: [5, 4, 3, 2, 1]

字符串逆序

s = "hello" reversed_s = s[::-1] print(reversed_s) # 输出: "olleh"

元组逆序

t = (1, 2, 3) reversed_t = t[::-1] print(reversed_t) # 输出: (3, 2, 1)

切片 [::-1] 表示从末尾到开头,步长为 -1,实现完全逆序。

使用 reversed() 函数

reversed() 返回一个逆序的迭代器,可以转换为列表或其他序列类型。

# 列表使用 reversed()
lst = [1, 2, 3, 4, 5]
reversed_lst = list(reversed(lst))
print(reversed_lst)  # 输出: [5, 4, 3, 2, 1]

字符串逆序

s = "hello" reversed_s = ''.join(reversed(s)) print(reversed_s) # 输出: "olleh"

注意:reversed() 不修改原序列,返回的是迭代器,需用 list()tuple()''.join() 等转换。

使用 list.reverse() 方法(仅限列表)

列表独有的 reverse() 方法会直接修改原列表,不返回新列表。

lst = [1, 2, 3, 4, 5]
lst.reverse()
print(lst)  # 输出: [5, 4, 3, 2, 1]

如果不需要保留原顺序,这种方式更节省内存。

总结建议

根据使用场景选择合适的方法:

  • 想保留原序列并快速逆序:用 切片 [::-1]
  • 处理任意可迭代对象并需要迭代器:用 reversed()
  • 只处理列表且允许修改原数据:用 list.reverse()

基本上就这些,不复杂但容易忽略细节。