python - 函数参数范围
问题描述
我是 Python 新手。我无法理解以下代码的结果。为什么第二个调用返回值包含第一个?
def first(l_list):
return l_list[:1][0]
def rest(l_list):
return l_list[1:]
def map(f, src_list, dst_list=[]):
if src_list:
dst_list.append(f(first(src_list)))
map(f, rest(src_list), dst_list)
return dst_list
def inc(num):
return num + 1
def pow(num):
return num**2
mylist = list(range(10))
print(map(inc, mylist))
print(map(pow, mylist))
结果是
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
我期待以下结果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
谢谢你的帮助!
更新
我修改了“地图”功能,它现在按预期工作。
def map(f, src_list, dst_list=None):
if dst_list is None:
dst_list = []
if src_list:
dst_list.append(f(first(src_list)))
map(f, rest(src_list), dst_list)
return dst_list
解决方案
推荐阅读
- scala - 如何在scala中将日期转换为yy-mm-dd
- python - 从嵌套在for循环中的if语句使变量成为全局变量
- layout - 在 Vaadin 10 Flow 中替换 Vaadin 8 框架中的“AbsoluteLayout”?
- r - R中的多行最多取一列
- android - java.lang.NoSuchMethodError:没有静态方法调度未处理的 KeyEvent Pre
- c++ - gcc中的多个对齐属性可以用来保证缓存行分离吗?
- powerbi - 对具有相似值的行进行分组
- scala - SCALA PAttern 与 LIST 中的递归匹配
- java - 覆盖标准 Spring MVC 异常的处理行为
- php - 将 POST 数据作为 JSON 对象提交与单个字段相比有什么缺点吗?