我得到了一个列表,每个列表包含一个数字1、2、3和0(0重复两次)。取决于数字和位置,我想一个相应的变量得到增加1次,每次发生。你知道吗
ballots = [['1', '2', '3', '0', '0'],
['1', '3', '0', '2', '0'],
['1', '2', '3', '0', '0'],
['0', '3', '2', '0', '1'],
['1', '3', '0', '2', '0'],
['2', '0', '3', '1', '0'],
['0', '0', '2', '1', '3'],
['0', '1', '2', '3', '0'],
['0', '1', '0', '2', '3'],
['2', '3', '1', '0', '0'],
['3', '2', '0', '0', '1'],
['0', '1', '3', '2', '0'],
['0', '0', '1', '2', '3'],
['0', '0', '3', '2', '1'],
['1', '2', '3', '0', '0'],
['2', '1', '3', '0', '0'],
['0', '3', '2', '1', '0'],
['0', '2', '3', '0', '1'],
['1', '2', '3', '0', '0'],
['1', '0', '0', '3', '2'],
['2', '1', '3', '0', '0'],
['3', '1', '2', '0', '0'],
['2', '3', '0', '1', '0'],
['0', '0', '3', '1', '2'],
['0', '3', '1', '0', '2'],
['2', '1', '0', '0', '3'],
['2', '0', '0', '1', '3'],
['2', '0', '0', '1', '3'],
['3', '0', '1', '0', '2']]
例如,对于第一个列表:
candidate1vote1 += 1
candidate2vote2 += 1
candidate3vote3 += 1
所有0都被忽略,但仍算作一个空格。对于第二个列表:
candidate1vote1 += 1
candidate3vote2 += 1
candidate4vote2 += 1
基本上,位置对应于候选人1/2/3/4/5,值对应于第一优先票、第二优先票或第三优先票。你知道吗
有人知道我是如何使用for/while循环对列表进行排序的吗?这样就可以通过每个投票和每个单独的投票进行相应的求和?你知道吗
这样,您就可以将每个答案列在一个列表中:
首先我想澄清一下。。所以你不仅要收集每个候选人的选票,还要收集每个候选人的偏好向量选票(1,2,3)?你知道吗
既然您知道这一点,考虑到您没有内存/时间限制,而且您似乎对python不太熟悉,我建议您使用double for loop。让我们创建一个带有首选项的候选人嵌套列表。它们的外部索引将是候选#,内部优先列表。你知道吗
len(ballot)
给你行的#(为了方便起见)5,你已经有了列的#。请算出缩进。。你知道吗相关问题 更多 >
编程相关推荐