我正在编写一个Python程序,它生成一个类似于下面代码块的列表。用户输入十个数字,这些数字存储在列表中。它计算不同对象的数量。每个()中的第一个数字是用户输入的数字,第二个数字是输入的次数。我需要做的是基本上打印给用户"最常见的数字是x,输入y次"。
organizedList = [(1.0, 5), (5.0, 3)]
print max(organizedList)
我尝试了一个普通的max命令,但是它选择了第二个值作为最大值,即使它认为它被选择的频率较低。谢谢你的帮助。
答案 0 :(得分:1)
正如其他答案已经指出的那样,您可以告诉max
函数仅通过设置key
参数来查看第二个值。要输出结果,您可以执行以下操作:
x,y = max(organizedList, key=lambda x: x[1])
print "The most common number is",x,"which was entered",y,"times."
答案 1 :(得分:0)
使用key
选项max
,这是一个告诉max
输出所依据的值的函数。
organizedList = [(1.0, 5), (5.0, 3)]
print max(organizedList, key=lambda x: x[1])
这将使用第二个元素来确定最大值。
答案 2 :(得分:0)
max
有一个关键参数,您可以使用它来指定应该从哪个元组元素中找到max。
>>> max(organizedList, key=lambda x: x[1])
(1.0, 5)
或者,如果您不是匿名函数的粉丝,可以使用operator.itemgetter
来使用第二个元素,类似于
>>> max(organizedList, key=itemgetter(1))
(1.0, 5)
答案 3 :(得分:0)
Normaly元组列表按第一个元素排序,但您可以通过键参数更改获取max元素的方式
>>> from operator import itemgetter
>>> organizedList = [(1.0, 5), (5.0, 3)]
>>> max(organizedList, key=itemgetter(1))
(1.0, 5)