计算每个条目从用户输入获得的投票数,并在最后输出

时间:2019-04-27 09:24:28

标签: python-3.x

我需要从用户那里获得重复输入(投票),并由DONE终止。他们输入投票后,我需要列出投票并显示每个“人”旁边的投票次数。

我已经设法完成了大部分任务,但是我一直在努力输出独特的词及其各自的投票。到目前为止,我还设法创建了三个列表。第一个是唯一单词的列表,第二个是每个“人”获得的投票数列表,最后是所有输入的列表。我觉得我已经很接近获得正确的输出,但是我似乎无法弄清楚我还能尝试什么。

print("Votes counts:")
print()
for r in uniquelist:
    for w in numvotes:
        print("%-10s" % r,"-",w)

这将打印出选民,但是他们被打印了多次,而我只希望他们打印一次。但是,投票数量会以正确的顺序打印,但会重复。

这是它吐出的东西:

Vote counts:
apples     - 2
apples     - 5
apples     - 1
apples     - 2
apples     - 1
oranges    - 2
oranges    - 5
oranges    - 1
oranges    - 2
oranges    - 1
pears      - 2
pears      - 5
pears      - 1
pears      - 2
pears      - 1
bananas    - 2
bananas    - 5
bananas    - 1
bananas    - 2
bananas    - 1
kiwis      - 2
kiwis      - 5
kiwis      - 1
kiwis      - 2
kiwis      - 1

我想要的只是:

Vote counts:
apples - 2
bananas - 2
kiwis - 1
oranges - 5
pears -  1

我也不确定如何获得这样的订单,或者从逻辑上讲它来自哪里。它与“排序函数的默认顺序”有关。

1 个答案:

答案 0 :(得分:0)

您有一对长度相同的列表。 要成对访问相应的条目,请使用zip()

    for r, w in zip(uniquelist, numvotes):
        print(r, w)

(或在打印时继续使用相同的花式格式。)

作为另一件事,您想按sorted顺序访问那些元组。 轻松完成:

    for r, w in sorted(zip(uniquelist, numvotes)):