利用集合分析活动投票情况。第一小队有五名队员,序号是1,2,3,4,5;第二小队也有五名队员,序号6,7,8,9,10。输入一个得票字符串,求第二小队没有得票的队员
输入格式:
在一行中输入得票的队员的序列号,用逗号隔开。
输出格式:
一行中输出第二小队没有得票的队员序号。
输入样例:
在这里给出一组输入。例如:
1,5,9,3,9,1,1,7,5,7,7,3,3,1,5,7,4,4,5,4,9,5,10,9
输出样例:
在这里给出相应的输出。例如:
6 8
我的答案:
方法一:
ticket = list(map(int, input().split(","))) #为什么这里要加上list才能正确遍历呢?
listA = []
for i in range(1, 11):
if (i not in ticket and i > 5):
listA.append(i)
for i in range(len(listA)):
print(listA[i], end = "")
if (i != len(listA)-1):
print(" ", end = "")
方法二:
使用print(*missing_votes)
会直接输出列表 missing_votes
中的值,而不会在它们之间添加逗号
votes = input().split(",")
missing_votes = []
for i in range(6, 11):
if str(i) not in votes:
missing_votes.append(i)
print(*missing_votes) #星号 * 在这里扮演了 解包 的角色
方法三:
在方法二的基础上使用列表推导式
votes = input().split(",")
missing_votes = [i for i in range(6, 11) if str(i) not in votes]
print(*missing_votes)
方法四:
使用 set
的差集操作
votes = input().split(",") # 获取输入的投票字符串并分割成列表
second_team_votes = set(int(vote) for vote in votes if 6 <= int(vote) <= 10) # 提取第二小队的得票并转换为集合
missing_votes = {6, 7, 8, 9, 10} - second_team_votes # 计算第二小队没有得票的队员
print(*missing_votes) # 输出结果