pin_drop当前位置:知识文库 ❯ 图文

Python列表reverse方法

概述

reverse() 方法用于将列表中的元素原地反转,即第一个元素变为最后一个,最后一个变为第一个。它是一种简单高效的反转列表方式,不需要创建新列表。


语法

代码示例

list.reverse()

返回值None(原地修改列表)


基本用法

代码示例

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

输出:

代码示例

[5, 4, 3, 2, 1]

反转字符串列表

代码示例

words = ["hello", "world", "python"]
words.reverse()
print(words)

输出:

代码示例

['python', 'world', 'hello']

reverse 与其他反转方式对比

方式 修改方式 返回值 适用类型 性能
list.reverse() 原地修改 None 列表 O(n)
list[::-1] 创建新列表 新列表 列表/字符串/元组 O(n)
reversed(list) 创建迭代器 迭代器 任何可迭代对象 O(1)

代码示例

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

a.reverse()
b_rev = b[::-1]
c_rev = list(reversed(c))

print("reverse():", a)
print("切片[::-1]:", b_rev)
print("reversed():", c_rev)
print("原列表b:", b)
print("原列表c:", c)

输出:

代码示例

reverse(): [5, 4, 3, 2, 1]
切片[::-1]: [5, 4, 3, 2, 1]
reversed(): [5, 4, 3, 2, 1]
原列表b: [1, 2, 3, 4, 5]
原列表c: [1, 2, 3, 4, 5]

常见应用场景

回文判断

代码示例

def is_palindrome(s):
    chars = list(s)
    original = chars[:]
    chars.reverse()
    return chars == original

print(is_palindrome("abcba"))
print(is_palindrome("hello"))

输出:

代码示例

True
False

翻转时间线

代码示例

timeline = ["09:00 上班", "12:00 午餐", "18:00 下班"]
timeline.reverse()
print(timeline)

输出:

代码示例

['18:00 下班', '12:00 午餐', '09:00 上班']

注意事项

注意:原地修改:reverse() 返回 None,不要写成 list = list.reverse()。如果需要保留原列表,使用 list[::-1]reversed()

注意:仅限列表:reverse() 是列表的专有方法,元组和字符串没有此方法。元组和字符串使用切片 [::-1] 反转。

注意:二次反转恢复:对列表调用两次 reverse() 会恢复原始顺序。


小结

  • reverse():原地反转列表,返回 None

  • 其他方式:切片 [::-1]reversed() 不会修改原列表

  • 适用范围:仅适用于列表,元组和字符串需使用切片反转

  • 二次反转:两次反转恢复原始顺序


练习题

练习1

练习1

编写一个函数 reverse_words(sentence),接收一个英文句子字符串,将每个单词的字母反转,但单词顺序不变。例如 "hello world""olleh dlrow"

练习2

练习2

给定列表 nums = [1, 2, 3, 4, 5],分别使用 reverse()、切片 [::-1]reversed() 三种方式反转列表,打印结果和原列表的变化情况。

常见问题

reverse()、[::-1] 和 reversed() 有什么区别?

reverse() 是列表方法,原地修改列表并返回 None;[::-1] 是切片操作,创建新列表,适用于列表/字符串/元组;reversed() 返回迭代器,适用于任何可迭代对象,需要 list() 转换才能得到列表。

reverse() 和 sort(reverse=True) 有什么区别?

reverse() 只是简单地将元素顺序颠倒,不进行排序;sort(reverse=True) 是按值从大到小进行降序排序。例如 [3,1,4,2] 用 reverse() 得到 [2,4,1,3],用 sort(reverse=True) 得到 [4,3,2,1]。

如何在不修改原列表的情况下反转列表?

有两种方式:一是使用切片 lst[::-1] 返回新列表;二是使用 list(reversed(lst)) 将迭代器转换为新列表。这两种方式都不会改变原列表。

标签: Python 列表方法 reverse 列表反转 回文判断 Python教程

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python列表sort方法 下一篇: Python列表count方法

poll相关推荐

作者头像 智能小晨 python

Python元组命名namedtuple

发布日期 2026-05-31
深入学习Python命名元组namedtuple,掌握字段访问、_make创建、_asdict转字典、_replace替换字段等核心方法。理解命名元组与普通元组的区别,写出更清晰易读的Python代码。
作者头像 智能小晨 python

Python元组解包

发布日期 2026-05-31
全面学习Python元组解包技巧,包括基本解包、星号扩展解包、嵌套解包、交换变量和函数多值返回。掌握优雅的Python赋值语法,让你的代码更简洁高效。
作者头像 智能小晨 python

Python元组index方法

发布日期 2026-05-31
深入学习Python元组index()方法,掌握元素索引查找技巧。了解index()语法、指定范围查找、安全查找方法和实际应用场景,避免ValueError异常,提升Python编程效率。
作者头像 智能小晨 python

Python元组count方法

发布日期 2026-05-31
深入学习Python元组count()方法,掌握元素出现次数统计技巧。了解count()语法、性能优化建议、嵌套元组统计和实际应用场景,配合练习题巩固所学知识。