计算 两个集合的交集、并集、差集、对称集
import sys
import time
#刷新缓冲区
def flush():
time.sleep(1)
#除去重复元素
def duplicate_removal(lt):
lt1 = []
for i in lt:
if i not in lt1:
lt1.append(i)
return lt1
#并集计算
def union():
tmp = [var for var in line_A if var in line_B]
return tmp
#对称差的计算
def Symmetric_difference(list_A, list_B):
sym_list = []
for item in list_A:
if item not in list_B:
sym_list.append(item)
for item in list_B:
if item not in list_A:
sym_list.append(item)
return sym_list
#差集获取
def Difference_set(list_A, list_B):
ret_list = []
for item in list_A:
if item not in list_B:
ret_list.append(item)
# for item in line_B:
# if item not in line_Ai:
# ret_list.append(item)
return ret_list
i = int(0)
print("请输入集合{0}的各个元素".format("A" if(i == 0) else "B"))
line_A = list(map(str, sys.stdin.readline().strip().split()))
flush()
line_A = duplicate_removal(line_A)
i += 1
print("请输入集合{0}的各个元素".format("A" if (i == 0) else "B"))
line_B = list(map(str, sys.stdin.readline().strip().split()))
flush()
line_B = duplicate_removal(line_B)
#显示两个集合的数据
print("集合A:{0}\n集合B:{1}".format(line_A if (line_A != []) else "line_A 为空集",
line_B if (line_B != []) else "line_B 为空集"))
print("A∪B:{0}".format(duplicate_removal(line_A + line_B)))
print("A∩B:{0}".format(union()))
print("A-B: {0}".format(Difference_set(line_A, line_B)))
print("A⊕B: {0}".format(Symmetric_difference(line_A, line_B)))
#答案
#请输入集合A的各个元素
1231 465467 984 654
请输入集合B的各个元素
654 123 41654 6789 45
集合A:['1231', '465467', '984', '654']
集合B:['654', '123', '41654', '6789', '45']
A∪B:['1231', '465467', '984', '654', '123', '41654', '6789', '45']
A∩B:['654']
A-B: ['1231', '465467', '984']
A⊕B: ['1231', '465467', '984', '123', '41654', '6789', '45']
Process finished with exit code 0
#
#
#