编写函数,模拟内置函数map()
时间: 2024-01-16 07:03:50 浏览: 29
好的,以下是一个简单的实现:
```python
def my_map(func, iterable):
result = []
for i in iterable:
result.append(func(i))
return result
```
使用方法与内置函数`map()`相同,例如:
```python
def square(x):
return x ** 2
numbers = [1, 2, 3, 4, 5]
result = my_map(square, numbers)
print(result) # [1, 4, 9, 16, 25]
```
请注意,此实现仅适用于接受一个参数的函数。如果您需要使用多个参数的函数,请对`my_map()`函数进行修改。
相关问题
编写函数,模拟内置函数map
好的,以下是一个简单的实现:
```python
def my_map(func, iterable):
result = []
for i in iterable:
result.append(func(i))
return result
```
使用方法与内置函数`map()`相同,例如:
```python
def square(x):
return x ** 2
numbers = [1, 2, 3, 4, 5]
result = my_map(square, numbers)
print(result) # [1, 4, 9, 16, 25]
```
请注意,此实现仅适用于接受一个参数的函数。如果您需要使用多个参数的函数,请对`my_map()`函数进行修改。
编写函数模拟内置函数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)
```