基本上,我需要帮助的是我正在进行的计划的一部分:
votes = (a tuple with elements such as: 11222, 1314, 551, 555)
given_seats = (a tuple with elements ie: 0, 1, 0, 4)
first_maximum = max(votes)
first_maximum_position = votes.index(max(votes))
for another_maximum in range(len(votes)):
if another_maximum != first_maximum_position
if another_maximum == first_maximum
if given_seats.index(another_maximum) < given_seats.index(first_maximum_position):
first_maximum_position = outro_max
那部分将是这一部分。我没有详细说明哪些功能有用。我想要实现的是:首先,在元组中找到最大值,并找到最大值的位置。获取该信息之后,我需要逐个检查该tupple的其他元素,以查看是否存在具有相同值的相同元组的任何其他元素。
如果没有任何其他元素具有与找到的最大值相同的值,则该函数将继续进行一些计算(工作正常)。另一方面,如果发现元组的其他元素与最大值具有相同的值,我想知道它的位置,这样我可以检查一个不同的tupple是否满足某个条件,如果是,我希望最后一个最大值替换先找到的那个。
这有点难以解释,但这是我能做的最好的事情。
祝你好运
答案 0 :(得分:1)
如果您使用enumerate
同时获取索引和值,则第一位很容易。
import operator
max_idx, max_val = max(enumerate(votes), key=operator.itemgetter(1))
# operator.itemgetter(1) is equivalent to lambda x: x[1]
第二位听起来你应该使用Counter
,但如果你愿意的话,你可以做很多事情。
max_values = [(idx, val) for idx,val in enumerate(votes) if val==max_val]
# a list of ALL values that match max_val, including by necessity max_val