gpt4 book ai didi

python - Python中嵌套不规则列表(不同子列表长度和对象类型)的整数最大值

转载 作者:太空宇宙 更新时间:2023-11-04 11:09:53 26 4
gpt4 key购买 nike

考虑列表:

    assigned = [['A',[4, 5, 6]],['B',[7, 8, 9]],['D',[2,3]],['C',[14]]]

我想重试子列表中整数的最大值。在目前的情况下,它将是 14。

我的第一步是扁平化列表:

    def flattenToMax(x):

if isinstance(x,list):
return [a for i in x for a in flattenToMax(i)]
else:
return [x]

结果是:

    ['A', 4, 5, 6, 'B', 7, 8, 9, 'D', 2, 3, 'C', 14]

然后我做了:

    maxNum = (max([x for x in toMax if isinstance(x,int)]))

输出是我的预期结果 14。请问,如何将这两个步骤合并为一个函数?

最佳答案

有多种方法可以做到这一点。据我所知,你的问题是你不能将这部分添加到你的函数中,因为它是一个递归函数:

maxNum = (max([x for x in toMax if isinstance(x,int)]))

这是一个关于如何在递归函数中拟合最大部分的示例(提示:不使用实际的 max() 函数,而是通过递归计算最大值)

assigned = [['A',[4, 5, 6]],['B',[7, 8, 9]],['D',[2,3]],['C',[14]]]

def recursive_max(a, best=None):
if isinstance(a, list):
for i in a:
best = recursive_max(i, best)
return best
else:
return best if not isinstance(a, int) else (a if best is None or a > best else best)

print(recursive_max(assigned))

14

关于python - Python中嵌套不规则列表(不同子列表长度和对象类型)的整数最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58539089/

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