我有以下函数示例(数字列表的平均值):
def avg(obs): return (1. / len(obs)) * np.sum(obs) avg([1,2,3,4,5]) 3.0
我很感兴趣,不理解如何使用中的单个可迭代参数和两个或多个参数 max()
max()
max(1,2,3,4,5) 5 max([1,2,3,4,5]) 5
首先,除非你有充分的理由,否则你不应该这样做; min 和 max 这样做是因为它们的二进制形式非常常见,但例如。 sum 仅对可迭代项进行操作。
min
max
sum
话虽如此,但以下内容起到了作用。
from collections import Sized def avg(*obs): if len(obs) == 1 and isinstance(obs[0], Sized): obs = obs[0] return (1. / len(obs)) * sum(obs)
( Sized 是一个抽象基类,它概括了列表、集合、dicts、元组、NumPy数组和各种其他容器。它确保 len 已定义。)
Sized
len