【发布时间】:2014-09-27 23:20:53
【问题描述】:
我有一个列表列表,例如 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 个元素的小型列表。但显示大数据集存在问题。
我该怎么办?
【问题讨论】:
-
请您提供
E的样品日期吗? -
为什么不只是
min(min(e) for e in E if e)?你真的不需要索引i,这将跳过空的子列表(如果所有子列表都是空的,你只会得到一个错误,在这种情况下min有反正没有意义)。 -
内置函数不会因为您提供大量数据而神秘地中断。其中一个
min调用将一个空序列作为参数,您只需筛选大型数据集并找到它。我们无法为您提供帮助。 -
@jonrsharpe 嘿,成功了!你能解释一下为什么这行得通,为什么我的行不通吗?
-
@delnan 我猜,它只是遇到了一个空序列呢?好的。我会找那个。
标签: python list max min large-data