计算两个集合的交集、并集、差集、对称集

计算 两个集合的交集、并集、差集、对称集

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

#
#
#

 

 

 

 
 
 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matthew_leung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值