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 与其他反转方式对比
代码示例
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)) 将迭代器转换为新列表。这两种方式都不会改变原列表。
本文涉及AI创作
内容由AI创作,请仔细甄别