编写函数,模拟内置函数 reversed()的功能。
时间: 2023-09-04 11:15:17 浏览: 119
以下是Python编写的函数,用于模拟内置函数reversed()的功能:
def my_reversed(seq):
"""
Return a reversed iterator over the values of the given sequence.
"""
if isinstance(seq, str):
return seq[::-1]
elif isinstance(seq, (tuple, list)):
return reversed(seq)
else:
raise TypeError("Argument must be a string, tuple, or list.")
该函数接受一个序列作为参数,并返回一个反向迭代器,该迭代器按反向顺序遍历给定序列的值。如果给定的序列是字符串,则返回反向字符串。如果给定的序列是元组或列表,则使用内置函数reversed()返回反向迭代器。如果给定的序列不是字符串、元组或列表,则会引发TypeError异常。
相关问题
编写函数模拟内置函数reversed
内置函数reversed()
可以用于反转一个序列(如字符串、列表、元组等),其返回一个反向迭代器。
下面是一个模拟内置函数reversed()
的函数实现:
def my_reversed(seq):
"""
反转序列中的元素
"""
if isinstance(seq, str):
# 如果是字符串,先转成列表再反转
seq = list(seq)
start, end = 0, len(seq) - 1
while start < end:
seq[start], seq[end] = seq[end], seq[start]
start += 1
end -= 1
return seq
上述代码中,我们接受一个序列作为参数,如果是字符串则先转成列表再进行反转操作。然后使用双指针法,从两端向中间逐步交换元素,最后返回反转后的序列。
使用方式与内置函数reversed()
类似:
>>> my_reversed('hello')
['o', 'l', 'l', 'e', 'h']
>>> my_reversed([1, 2, 3, 4])
[4, 3, 2, 1]
>>> my_reversed((1, 2, 3))
(3, 2, 1)
编写函数,模拟内置函数reversed
编写函数,模拟内置函数reversed:
可以使用列表切片的方式实现,具体代码如下:
def my_reversed(seq): return seq[::-1]
其中,seq为需要反转的序列,[::-1]表示从后往前每隔一个取一个元素,即实现了反转的功能。