Python的奇怪函数结果,我不能用另一种语言复制

时间:2016-11-27 14:10:39

标签: python

我的python函数:

def searchMAX(Dict):
    v=list(Dict.values())
    return list(Dict.keys())[v.index(max(v))]

我无法在java中重现它以了解其输出是什么

如果我这样做:

myDico ={0:0.0}
myDico.update({1:1.2}) 
myDico.update({2:11.2}) 
myDico.update({3:17.2})
myMax = searchMAX(myDico)
print(*myMax, sep='\n')

我有这个错误:

TypeError: print() argument after * must be an iterable, not int

print(myMax, sep'\n')仅重新 3 而不是列表:(?

1 个答案:

答案 0 :(得分:2)

假设Dict是Python dict,那么:

v = list(Dict.values())

Dict的值上创建一个迭代器列表,并将其赋予v

然后

return list(Dict.keys())[v.index(max(v))]

列出Dict的键,并且通过查找最大值的索引(v.index(max(v)))返回与其关联的最大值的键并在列表中使用该索引。

因此searchMAX返回一个键,在你的情况下,它总是一个整数,你不能将它传递给带有*的print()。你应该这样做:

print(Max, sep='\n')