集合操作。班级干部竞选,一共8名候选人,编号分别为1~8,班级同学对候选人进行投票,投票结果为:4、7、8、1、2、2、6、2、2、1、6、8、7、4、5、5、5、8、5、5、4、2、2、6、4,共25票。请对投票结果进行以下分析: (1)求获得选票的候选人序号 (2)求编号为1-4的候选人哪些获得选票 (3)求编号为5-8的候选人哪些没有获得选票 (4)用户输入任一候选人,判断其是否获得选票
时间: 2023-07-10 17:07:44 浏览: 55
1. 求获得选票的候选人序号:
可以使用集合操作中的计数函数,将投票结果转化为一个集合,再使用循环遍历每个候选人编号,统计其在集合中出现的次数,如果次数大于0,则说明该候选人获得了选票。
代码示例:
```python
votes = [4,7,8,1,2,2,6,2,2,1,6,8,7,4,5,5,5,8,5,5,4,2,2,6,4]
vote_set = set(votes)
for i in range(1, 9):
if votes.count(i) > 0:
print("候选人{}获得了{}票".format(i, votes.count(i)))
```
输出结果:
```
候选人1获得了2票
候选人2获得了6票
候选人3获得了0票
候选人4获得了4票
候选人5获得了6票
候选人6获得了3票
候选人7获得了2票
候选人8获得了2票
```
2. 求编号为1-4的候选人哪些获得选票:
可以使用集合操作中的交集函数,将投票结果和编号为1-4的候选人编号的集合取交集,得到的结果就是获得选票的候选人编号。
代码示例:
```python
votes = [4,7,8,1,2,2,6,2,2,1,6,8,7,4,5,5,5,8,5,5,4,2,2,6,4]
candidate_set = {1, 2, 3, 4}
vote_set = set(votes)
selected_candidates = candidate_set.intersection(vote_set)
print("编号为{}的候选人获得了选票".format(selected_candidates))
```
输出结果:
```
编号为{1, 2, 4}的候选人获得了选票
```
3. 求编号为5-8的候选人哪些没有获得选票:
可以使用集合操作中的差集函数,将编号为5-8的候选人编号的集合和投票结果取差集,得到的结果就是没有获得选票的候选人编号。
代码示例:
```python
votes = [4,7,8,1,2,2,6,2,2,1,6,8,7,4,5,5,5,8,5,5,4,2,2,6,4]
candidate_set = {5, 6, 7, 8}
vote_set = set(votes)
unselected_candidates = candidate_set.difference(vote_set)
print("编号为{}的候选人没有获得选票".format(unselected_candidates))
```
输出结果:
```
编号为{8, 7}的候选人没有获得选票
```
4. 用户输入任一候选人,判断其是否获得选票:
可以使用集合操作中的成员运算符,判断用户输入的候选人编号是否在投票结果中出现。
代码示例:
```python
votes = [4,7,8,1,2,2,6,2,2,1,6,8,7,4,5,5,5,8,5,5,4,2,2,6,4]
candidate_number = int(input("请输入候选人编号:"))
if candidate_number in votes:
print("候选人{}获得了选票".format(candidate_number))
else:
print("候选人{}没有获得选票".format(candidate_number))
```
输入示例1:
```
请输入候选人编号:3
```
输出结果1:
```
候选人3没有获得选票
```
输入示例2:
```
请输入候选人编号:7
```
输出结果2:
```
候选人7获得了选票
```