Tutorial Study Image

Python reversed()

内置函数 reversed() 接受一个序列作为输入并返回一个迭代器,该迭代器应按给定序列的反向顺序排列。我们也可以在任何实现了 __reverse__() 的对象中使用 reversed()。


reversed(seq) #where seq can be tuple,string,list,range, etc.
 

reversed() 参数

接受单个参数。如果我们传递不保持其顺序的对象(如字典和集合),则会导致 TypeError。

参数 描述 必需/可选
seq 要反转的序列 必需

reversed() 返回值

如果我们要获取用户定义对象的反向序列,则该类必须执行以下操作之一:

实现 __len__() 和 __getitem__() 方法
或实现 __reversed__() 方法

输入 返回值
序列(列表、字符串等) 反向序列

Python 中 reversed() 方法的示例

示例 1:在字符串、元组、列表和范围中使用 reversed()


# for string
seq_string = 'Python'
print(list(reversed(seq_string)))

# for tuple
seq_tuple = ('P', 'y', 't', 'h', 'o', 'n')
print(list(reversed(seq_tuple)))

# for range
seq_range = range(5, 9)
print(list(reversed(seq_range)))

# for list
seq_list = [1, 2, 4, 3, 5]
print(list(reversed(seq_list)))
 

输出

['n', 'o', 'h', 't', 'y', 'P']
['n', 'o', 'h', 't', 'y', 'P']
[8, 7, 6, 5]
[5, 3, 4, 2, 1]

示例 2:在自定义对象中使用 reversed()


class Vowels:
    vowels = ['a', 'e', 'i', 'o', 'u']

    def __reversed__(self):
        return reversed(self.vowels)

v = Vowels()
print(list(reversed(v)))
 

输出

['u', 'o', 'i', 'e', 'a']