内置函数reversed()
接受一个序列作为它的输入,并返回一个迭代器,迭代器应该与给定序列的顺序相反。我们也可以在任何实现reversed()
的对象中使用reversed()
。
**reversed(seq)** #where seq can be tuple,string,list,range, etc.
接受单个参数。如果我们传递的对象不像 dict 和 set 那样保持它们的顺序,那么就会导致类型错误。
参数 | 描述 | 必需/可选 |
---|---|---|
顺序 | 要反转的顺序 | 需要 |
如果我们想得到用户定义对象的反例,该类必须执行以下任一操作:
实现__len__()
和__len__()
方法
或实现__reversed__()
方法
| 投入 | 返回值 | | 序列(列表、字符串等) | 反向序列 |
中反向()
方法的示例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']