我有一个非常大的数组列表,看起来像这样:
'apples': array([1,2,3,4]), 'pears': array([1,2,10,11]),'oranges': array([1,10,10,3])
我想找到所有数组中的最大值。在我上面的简短示例中,它将是11.
我正在努力编写能够为列表中的所有数组提供最大值的东西。任何想法都会受到欢迎。
答案 0 :(得分:2)
您的列表实际上是一本字典,因此您可以这样做:
arr = {'apples': [1,2,3,4], 'pears': [1,2,10,11],'oranges': [1,10,10,3]}
res = max(map(max, arr.values()))
print(res)
输出:
11
您也可以使用chain
模块中的itertools
函数执行此操作:
from itertools import chain
arr = {'apples': [1,2,3,4], 'pears': [1,2,10,11],'oranges': [1,10,10,3]}
res = max(chain(max(i) for i in arr.values()))
print(res)
输出:
11
答案 1 :(得分:1)
这会有用吗?
big_dict = {"apple" : list([1,2,3]),
"pear" : list([4,5,6])}
print max([max(v) for v in big_dict.itervalues()])
答案 2 :(得分:0)
从你给出的例子来看,它看起来像是字典而不是列表,但为了简单起见,我们假设它是一个以下形式的列表:
[[2,3,55],[23,5,63],[2,3,6],[4,6,78], ...]
所以你可以做的是遍历主列表并将当前最大值保存在变量中,并且只比较每个数组的最大值,如果更大则更新。
示例强>
max_value = 0
for l in yourList:
curr = max(l)
if curr > max_value:
max_value = curr
print max_value
这可以很容易地转换为使用字典而不是列表,只是迭代字典中的每个项目,逻辑将是相同的(必须从值中获得max()
。) p>
希望这有帮助!
答案 3 :(得分:0)
如果您的数据位于字典变量d中,请尝试尝试
l=[max(d[key]) for key in d.keys()]
print max(l)
或者你可以使用一个班轮
print max([max(d[key]) for key in d.keys()])
答案 4 :(得分:0)
你不能直接这样做,尝试形成另一个数组并检查'max(arraylist)'
答案 5 :(得分:0)
首先创建一个新列表,其中包含每个词典元素的最大值,然后获取该新列表的最大值
dict = {"apples" : [1, 2, 8, 4], "fruits": [3,2,6]}
maxlst = [max(el) for el in dict.values()]
print(max(maxlst))
答案 6 :(得分:0)
对我来说,更蟒蛇的方式是使用理解词:
dictionary = {'apples': np.array([1,2,3,4]),
'pears': np.array([1,2,10,11]),'oranges': np.array([1,10,10,3])}
In [144]: { k:v.max() for k,v in dictionary.items() }
Out[144]: {'apples': 4, 'oranges': 10, 'pears': 11}
另一种简单的方法是使用pandas:
In [145]: pd.DataFrame(dictionary).max()
Out[145]:
apples 4
oranges 10
pears 11
dtype: int32
答案 7 :(得分:0)
对于大型列表
,您可以使用以下内容obj={'apples': [1,2,3,4], 'pears': [1,2,10,11],'oranges': [1,10,10,3]}
max(sum(obj.values(), []))
11