我是python的新手,现在开始学习它。我在网上练习,遇到以下问题。我试图解决它,但是,尽管我得到了在线验证器的预期结果,但还是得到了预期的结果。请建议我要去哪里错了。
++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++
在一所学校中,共有20名学生,编号从1到20。您将获得三个名为“ C”,“ F”和“ H”的列表,分别代表打板球,足球和曲棍球的学生。 。根据此信息,找出并打印以下内容:
- 参加这三种运动的学生
- 既玩板球又玩足球但不打曲棍球的学生
- 完全参加两项运动的学生
- 不参加这三种运动中的任何一项的学生
格式:
输入:
3个列表,其中包含分别代表板球,足球和曲棍球的学生的数字(从1到20)。
输出:
根据问题中提供的限制,有4个不同的列表包含学生。
示例: 输入:
[[2, 5, 9, 12, 13, 15, 16, 17, 18, 19]
[2, 4, 5, 6, 7, 9, 13, 16]
[1, 2, 5, 9, 10, 11, 12, 13, 15]]
预期输出:
[2, 5, 9, 13]
[16]
[12, 15, 16]
[3, 8, 14, 20]
下面是我的代码
C = set(input_list[0])
F = set(input_list[1])
H = set(input_list[2])
A= set(range(1, 21))
print(sorted(list(C & F & H)))
print(sorted(list((C & F) - H)))
print(sorted(list(((C-F)&H | (C-H)&F))))
print(sorted(list(A-(C|F|H))))
我不确定是否真的需要A。
谢谢
答案 0 :(得分:1)
如果没有A集合,结果应该无处发现期望的学生,因为他们不属于任何其他集合(按定义)。 因此,确实需要A集来包含不属于其他集合的学生。
答案 1 :(得分:1)
除了完全参加两项运动的学生以外,您对其他人都是正确的,应该是:
(C|F|H) - (C^F^H)
答案 2 :(得分:1)
# Read the three input lists, i.e. 'C', 'F', and 'H'.
C = input_list[0]
F = input_list[1]
H = input_list[2]
# Write your code here
CS=set(C)
FS=set(F)
HS=set(H)
CHF=set(range(1,21))
A=(CS.intersection(FS.intersection(HS)))
B=((FS.intersection(CS))-CS.intersection(FS.intersection(HS)))
C=((((CS-FS).intersection(HS)).union((HS-CS).intersection(FS))).union((FS-HS).intersection(CS)))
D=(CHF-(CS.union(FS.union(HS))))
print(sorted(list(A)))
print(sorted(list(B)))
print(sorted(list(C)))
print(sorted(list(D)))
答案 3 :(得分:0)
print(sorted(list(set(C)&set(F)&set(H))))
print(sorted(list(set(C)&set(F)-set(H))))
y=set(C)&set(F)&set(H)
print(sorted(list(((set(C)&set(F))|(set(H)&set(F))|(set(C)&set(H)))-y)))
print(sorted(list(A-(set(C)|set(F)|set(H)))))
答案 4 :(得分:0)
input_list_c = [2, 5, 9, 12, 13, 15, 16, 17, 18, 19]
input_list_f = [2, 4, 5, 6, 7, 9, 13, 16, 20]
input_list_h = [1, 2, 5, 9, 10, 11, 12, 13, 15, 20]
mc = max(input_list_c)
mf = max(input_list_f)
mh = max(input_list_h)
if mc > mf & mc > mh:
m = mc
elif mf > mc & mf > mh:
m = mf
else:
m = mh
nc = min(input_list_c)
nf = min(input_list_f)
nh = min(input_list_h)
if nc < nf & nc < nh:
n = nc
elif nf < nc & nf > nh:
n = nf
else:
n = nh
C = set(input_list_c)
F = set(input_list_f)
H = set(input_list_h)
A = set(range(n,m))
Y = (C&F&H)
print(sorted(list(Y)))
print(sorted(list((C&F)-H)))
print(sorted(list((C&F|C&H|F&H)-Y)))
print(sorted(list(A-(C|F|H))))
答案 5 :(得分:0)
导入ast,sys
input_str = sys.stdin.read()
input_list = ast.literal_eval(input_str)
C = input_list [0]
F = input_list [1]
H = input_list [2]
C =设置(input_list [0])
F =设置(input_list [1])
H =设置(input_list [2])
print(sorted(list(C&F&H)))
print(sorted(list((C&F)-(C&F&H))))
print(sorted(list((((C&F)|(F&H)|(C&H))-(C&F&H))))
print(sorted(list(set(range(1,21))-(C | F | H))))
答案 6 :(得分:0)
C = input_list[0]
F = input_list[1]
H = input_list[2]
C = set(input_list[0])
F = set(input_list[1])
H = set(input_list[2])
print(sorted(list(C & F & H)))
print(sorted(list((C & F) - (C & F & H))))
print(sorted(list(((C & F) | (F & H) | (H & C)) - (C&F&H))))
print(sorted(list(set(range(1,21)) -(C | F | H))))