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}