编写函数,模拟内置函数reversed()。
时间: 2023-04-28 08:02:49 浏览: 165
可以使用以下代码实现模拟内置函数reversed():
```python
def my_reversed(seq):
if isinstance(seq, str):
return seq[::-1]
elif isinstance(seq, list):
return seq[::-1]
elif isinstance(seq, tuple):
return seq[::-1]
else:
raise TypeError("Unsupported type")
# 测试
print(my_reversed("hello")) # olleh
print(my_reversed([1, 2, 3])) # [3, 2, 1]
print(my_reversed((4, 5, 6))) # (6, 5, 4)
print(my_reversed(123)) # TypeError: Unsupported type
```
该函数接受一个序列作为参数,如果是字符串、列表或元组类型,则返回反转后的序列;否则抛出类型错误异常。
相关问题
编写函数模拟内置函数reversed
内置函数`reversed()`可以用于反转一个序列(如字符串、列表、元组等),其返回一个反向迭代器。
下面是一个模拟内置函数`reversed()`的函数实现:
```python
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()`类似:
```python
>>> 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)
```
python 编写函数 模拟内置函数reversed()
好的,以下是一个 Python 函数实现内置函数 reversed() 的功能:
```python
def my_reversed(seq):
if not isinstance(seq, (list, tuple, str)):
raise TypeError("Argument must be a list, tuple, or string")
return seq[::-1]
```
这个函数接受一个列表、元组或字符串作为参数,然后返回一个反转后的序列。具体实现是通过使用切片操作 [::-1] 来实现反转。需要注意的是,如果参数不是列表、元组或字符串,函数会抛出 TypeError 异常。
你可以像这样调用这个函数:
```python
my_list = [1, 2, 3, 4, 5]
reversed_list = my_reversed(my_list)
print(reversed_list) # [5, 4, 3, 2, 1]
my_str = "hello world"
reversed_str = my_reversed(my_str)
print(reversed_str) # "dlrow olleh"
```
阅读全文