gpt4 book ai didi

python - 在 python 中查找 'large' 列表的 min()/max()。值错误 : min() arg is an empty sequence

转载 作者:太空狗 更新时间:2023-10-30 02:45:18 24 4
gpt4 key购买 nike

我有一个列表列表 E[ ][ ],其中 E 有十个子列表,每个子列表有大约 500 个条目。

我最关心的是计算分布在十个子列表中的所有 5000 个值中的最大值。

现在,我写的是这样的:

MinVal = min(min(E[i]) for i in range(len(E)))

它给了我这个错误:ValueError: min() arg is an empty sequence

现在我这样写:

min_arr = []
for i in range(len(E)):
min_arr.append(min(E[i]))
MinVal = min(min_arr)

它给了我同样的错误:ValueError: min() arg is an empty sequence

所以,我只是尝试这样做:

print(max(E[1]))

它确实给了我答案

前两个代码也适用于 5-10 个元素的小型列表。但是显示了大数据集的问题。

我该怎么办?

最佳答案

您的代码:

MinVal = min(min(E[i]) for i in range(len(E)))

E[i] == [] 时失败,因为空集的最小值没有合理的定义。因此,您需要跳过空的子列表。一种选择是:

min_val = min(min(e) for e in E if e)

大致相当于:

min_vals = []
for e in E:
if e: # or 'if e != []:' - empty sequences evaluate False-y
mins.append(min(e))
min_val = min(min_vals)

(请注意,您实际上并未在任何地方使用索引 i,因此您可以直接遍历 E。)

5,000 项并不多,您可能不需要太担心效率。

关于python - 在 python 中查找 'large' 列表的 min()/max()。值错误 : min() arg is an empty sequence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25136401/

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