Python type() 函数用法
2023-09-17 22:28:55
reversed()
方法返回给定序列的反向迭代器。它与iter()方法相同,但顺序相反。在内部,它调用序列类的 __reversed__()
方法。如果给定对象不是序列,则重写类中要与reversed()
函数一起使用__reversed__()
方法。
语法:
reversed(seq)
参数:
seq:要反转的顺序。
返回值:
返回访问给定序列的迭代器对象。
下面的示例返回指定字符串序列的反向迭代器。
mystr = "Hello"
rev_itr = reversed(mystr)
print(type(rev_itr))
print(rev_itr.__next__()) # getting item using __next__()
print(next(rev_itr)) # getting item using next() which calls __next__()
print(next(rev_itr))
print(next(rev_itr))
print(next(rev_itr))
#print(next(rev_itr)) # raise StopIteration error
输出:
<class 'reversed'>
o
l
l
e
H
上面,reversed(mystr)
返回 reversed
迭代器类的对象。
由于这是一个迭代器,因此可以使用 __next__()
或 next() 方法来访问值。
在获取最后一个元素后调用 next()
方法将引发StopIteration
错误。
reversed()
函数可以与 for 循环一起使用,如下所示。
mystr = "Hello"
for s in reversed(mystr):
print(s, end='')
输出:
olleH
序列可以是列表、元组、集合或字典。下面获取不同可迭代对象的反向迭代器。
nums_list = [1,2,3,4]
rev_itr = reversed(nums_list)
print(next(rev_itr))
print(next(rev_itr))
print(next(rev_itr))
print(next(rev_itr))
nums_tuple = (10, 20, 30, 40)
rev_itr = reversed(nums_tuple)
print(next(rev_itr))
print(next(rev_itr))
print(next(rev_itr))
print(next(rev_itr))
输出:
4
3
2
1
40
30
20
10
reversed()
方法返回一个对象,该对象可以转换为列表、元组或设置为查看返回对象的元素,如下所示。
mystr = "Hello"
print(list(reversed(mystr)))
nums_list = [1,2,3,4]
print(tuple(reversed(nums_list)))
nums_tuple = (10, 20, 30, 40)
print(set(reversed(nums_tuple)))
输出:
['o', 'l', 'l', 'e', 'H']
(4, 3, 2, 1)
{40, 30, 20, 10}