Python利用集合分析活动投票情况
时间: 2023-12-14 15:18:07 浏览: 82
可以利用Python中的集合(set)数据类型来分析活动投票情况。假设我们有一个投票活动,参与者可以投票给多个选项,我们可以通过以下步骤分析投票情况:
1. 创建一个空的字典,用于存储每个选项的票数。
```
votes = {}
```
2. 读取所有投票结果,并将每个选项的票数加入字典中。
```
with open('votes.txt') as f:
for line in f:
choices = line.strip().split(',')
for choice in choices:
if choice not in votes:
votes[choice] = 1
else:
votes[choice] += 1
```
在上面的代码中,我们假设投票结果存储在一个名为votes.txt的文件中,每行包含一个或多个选项的编号,用逗号分隔。
3. 根据票数对选项进行排序。
```
sorted_votes = sorted(votes.items(), key=lambda x: x[1], reverse=True)
```
4. 输出排名结果。
```
for i, (choice, count) in enumerate(sorted_votes):
print(f'{i+1}. {choice} ({count} votes)')
```
完整的代码示例:
```
votes = {}
with open('votes.txt') as f:
for line in f:
choices = line.strip().split(',')
for choice in choices:
if choice not in votes:
votes[choice] = 1
else:
votes[choice] += 1
sorted_votes = sorted(votes.items(), key=lambda x: x[1], reverse=True)
for i, (choice, count) in enumerate(sorted_votes):
print(f'{i+1}. {choice} ({count} votes)')
```
这样就可以方便地分析活动投票情况了。注意,这里使用set数据类型来存储选项可能不太方便,因为set不支持重复元素,而在投票中一个选项可能会被投多次。如果需要完整的投票记录,可以考虑使用列表(list)等其他数据类型。
阅读全文