以下是这道题的 Python 代码实现:n = int(input())
set_a = set(map(int, input().split()))
m = int(input())
set_b = set(map(int, input().split()))
# 计算集合并、交、差、对称差
un = sorted(list(set_a.union(set_b)))
insec = sorted(list(set_a.intersection(set_b)))
diff_a = sorted(list(set_a.difference(set_b)))
diff_b = sorted(list(set_b.difference(set_a)))
sym_diff = sorted(list(set_a.symmetric_difference(set_b)))
# 输出集合并、交、差、对称差
print("union:", end=" ")
if un:
print(*un)
else:
print("None")
print("intersection:", end=" ")
if insec:
print(*insec)
else:
print("None")
print("difference(A-B):", end=" ")
if diff_a:
print(*diff_a)
else:
print("None")
print("difference(B-A):", end=" ")
if diff_b:
print(*diff_b)
else:
print("None")
print("symmetric_difference:", end=" ")
if sym_diff:
print(*sym_diff)
else:
print("None")
# 判断两个集合的关系
if set_a.issuperset(set_b):
print("A is superset of B")
elif set_a.issubset(set_b):
print("A is subset of B")
elif set_a == set_b:
print("A = B")
elif set_a.isdisjoint(set_b):
print("The intersection of A and B is empty")
else:
print("A intersects B")
代码说明如下:
1.首先读入输入数据,使用 set() 函数将输入的整数元素转换为集合类型。
2.然后依次求出并、交、差、对称差。这些计算可以通过使用集合的内置函数 union()、intersection()、difference() 和 symmetric_difference() 实现。同时,需要使用 list() 函数将计算结果转换为列表类型
3.在每行的开头输出对应关系的名称,如果计算结果为空集,则输出 None。
4.最后通过使用 issubset()、issuperset()、isdisjoint() 判断两个集合之间的关系,并输出相应的判断结果。 若上述三种情况都不满足,则说明两个集合存在交集,输出 “A intersects B”。 |