gpt4 book ai didi

python - 最小-最大 python v3 实现

转载 作者:行者123 更新时间:2023-12-03 09:24:06 26 4
gpt4 key购买 nike

我目前正在尝试为 python 中的内置 min-max 函数编写等效代码,并且我的代码返回一个非常奇怪的异常,我根本不理解:

TypeError: 'generator' object is not subscriptable, min, 7, , 9

当我尝试使用时:

min(abs(i) for i in range(-10, 10))

这是我的代码:

def min(*args, **kwargs):
key = kwargs.get("key", None)
argv=0
for i in args:
argv+=1
if argv == 1 and (type(args) is list or type(args) is tuple or type(args) is str):
min=args[0][0]
for i in args[0]:
if key != None:
if key(i) < key(min):
min = i
else:
if i < min:
min = i
return min
else:
min=args[0]
for i in args:
if key != None:
if key(i) < key(min):
min = i
else:
if i < min:
min = i
return min

根据文档,我应该能够迭代生成器...

最佳答案

这是我的实现:

def max(*args, **kwargs):
key = kwargs.get("key", lambda x: x)
if len(args) == 1:
args = args[0]
maxi = None
for i in args:
if maxi == None or key(i) > key(maxi):
maxi = i
return maxi

def min(*args, **kwargs):
key = kwargs.get("key", lambda x: x)
if len(args) == 1:
args = args[0]
mini = None
for i in args:
if mini == None or key(i) < key(mini):
mini = i
return mini

比预览帖子更简洁一点。

关于python - 最小-最大 python v3 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25249642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com