Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么在将map()与方法.append()一起使用时返回四个列表_Python_Python 3.x_List - Fatal编程技术网

Python 为什么在将map()与方法.append()一起使用时返回四个列表

Python 为什么在将map()与方法.append()一起使用时返回四个列表,python,python-3.x,list,Python,Python 3.x,List,我试图用方法append测试函数map,但得到了错误的输出 代码 预期产量 实际产量 map为输入序列中的每个对象返回一个输出对象。输入序列有4个对象,因此输出有4个对象。它们都是相同的,因为函数总是返回相同的数字\u tmp对象。要解决此问题,请停止在map中使用全局变量,内置变量将作用于iterable中的每个值。因此,您的函数应包括可应用于每个子列表的逻辑: 或者,您可以从标准库中使用: from statistics import mean res = list(map(mean, n

我试图用方法
append
测试函数
map
,但得到了错误的输出

代码 预期产量 实际产量
map
为输入序列中的每个对象返回一个输出对象。输入序列有4个对象,因此输出有4个对象。它们都是相同的,因为函数总是返回相同的
数字\u tmp
对象。要解决此问题,请停止在
map

中使用全局变量,内置变量将作用于iterable中的每个值。因此,您的函数应包括可应用于每个子列表的逻辑:

或者,您可以从标准库中使用:

from statistics import mean

res = list(map(mean, numbers))

为什么要将
numbers\u tmp
作为一个全局变量,然后忽略它的内容以支持
map
返回的内容?不要在
map
中使用副作用。只需使用一个循环和副作用。
[57.0, 58.2, 50.6, 27.2]
[
    [57.0, 58.2, 50.6, 27.2], 
    [57.0, 58.2, 50.6, 27.2], 
    [57.0, 58.2, 50.6, 27.2], 
    [57.0, 58.2, 50.6, 27.2]
]
def mean_calculator(num_list):
    return sum(num_list) / len(num_list)

res = list(map(mean_calculator, numbers))

print(res)

[57.0, 58.2, 50.6, 27.2]
from statistics import mean

res = list(map(mean, numbers))
numbers = [[34, 63, 88, 71, 29], [90, 78, 51, 27, 45], [63, 37, 85, 46, 22], [51, 22, 34, 11, 18]]
def mean_append(num_list):
    return sum(num_list) / len(num_list)

print(list(map(mean_append, numbers)))