Python:我有一个元组,我发现它是最大的,它的索引是什么?

2024-07-01 06:50:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题的例子,所以我不必把整个代码放在这里是下面。你知道吗

def mandatos(nr_votes):
    nr_candidates = len(nr_votes)
    candidate_with_most_votes = max(nr_votes)

    print (nr_candidates)
    print (candidate_with_most_votes)

    >>> mandatos((10, 8, 6)
    >>> 3
    >>> 10

这是我在第二个python文件上所写的内容,以查看这些内容是否适用于我的主文件。要继续使用函数中检索到的数据,我在主文件中缺少的是知道本例中“10”的位置。我知道这个案子在0号位置,只要查一下就知道了。但是我正在构建的程序本身在一个元组中将有几十个入口,在读取元组中的最大元素之后,我必须给出一个命令?将选票除以下一个除数。你知道吗


Tags: 文件代码内容mostlendefwithnr
2条回答

如果我理解正确的话,您需要最大值的位置。请尝试:

candidate_index = nr_votes.index(candidate_with_most_votes)

[更正:]

一个Python的方式是

candidate_with_most_votes = max(enumerate(nr_votes), key=lambda x: x[1])[0]

或者,如果你还想计票

vote_count, candidate_with_most_votes = max(enumerate(nr_votes), key=lambda x: x[1])

max(与许多其他函数一样)允许您指定一个“key”函数,用于从元组中的每个元素中提取要比较的值。Enumerate为iterable中的每个项生成一个元组(idx,item)。把这两者结合起来,你就能得到你想要的。你知道吗

示例:

>>> a=[10,30,20]
>>> max(enumerate(a), key=lambda x: x[1])[0]
1
>>> for i, item in enumerate(a): print(i,item)
(0, 10)
(1, 30)
(2, 20)

相关问题 更多 >

    热门问题