内置函数 reversed() 接受一个序列作为输入并返回一个迭代器,该迭代器应按给定序列的反向顺序排列。我们也可以在任何实现了 __reverse__() 的对象中使用 reversed()。
reversed(seq) #where seq can be tuple,string,list,range, etc.
接受单个参数。如果我们传递不保持其顺序的对象(如字典和集合),则会导致 TypeError。
| 参数 | 描述 | 必需/可选 |
|---|---|---|
| seq | 要反转的序列 | 必需 |
如果我们要获取用户定义对象的反向序列,则该类必须执行以下操作之一:
实现 __len__() 和 __getitem__() 方法
或实现 __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]
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']