前言:
今天看官们对“python交叉排序”大约比较珍视,同学们都需要学习一些“python交叉排序”的相关内容。那么小编也在网络上汇集了一些有关“python交叉排序””的相关资讯,希望同学们能喜欢,姐妹们快快来了解一下吧!以前学习数学的时候多少还会记得集合的一些运算:交叉并补'交集'(intersection):'&''差集'(difference):'-''并集'(union):'|''补集'(symmetric_difference):本质 上数学的这些概念集合,函数在编程中都有很强烈的体现
那么 如何用代码来实现两个集合的运算呢。
首先我们回顾集合,函数中的定义域值哉也是一个集合的概念
如何使用Python去实现集合的操作呢?
有如何两个集合
lst_a = [1,2,3,4,5]lst_b = [3,4,5,6,7]交集:两个集合中的共同元素
思路:
遍历每个list_a中的元素item,如果这个item在集合lst_b中也存在,说明这个元同时存在 于这两个集合中,也是就交集的元素。
编写程序.
a = [1,2,3,4,5]lst_b = [3,4,5,6,7]result = []for item in lst_a: if item in lst_b: result.append(item)print(result)关键点用 for in 去遍历一个元素是比较简单的。判断元素 item在集合中用 item in lst语法 去判断即可在集合中添加元素用 append 方法
进一步思考:有没有什么简单的做法?当然是有的
lst_a = [1,2,3,4,5]lst_b = [3,4,5,6,7]lst_c = [x for x in lst_b if x in lst_a]print(lst_c)lst_c = [x for x in lst_b if x in lst_a]
这句话怎么理解?
x for x in lst_b 对于每一个在lst_b中的无线xif x in lst_a 如果 x也在集合lst_a中说明元素 x 是交集
2 并集:两个集合中的共同元素
思路:
a 集合 + b集合的元素 & 元素不在a中存
print("---并集--")lst_a = [1,2,3,4,5]lst_b = [3,4,5,6,7]lst_c = lst_a + [x for x in lst_b if x not in lst_a]print(lst_c)lst_c = lst_a + [x for x in lst_b if x not in lst_a]
3 求集合 A 与集合 B 的并集
print("---A -->b补集--")lst_a = [1,2,3,4,5]lst_b = [3,4,5,6,7]lst_c = [x for x in lst_b if x not in lst_a]print(lst_c)
这些都是们自己实现的一个逻辑过程,Python中已经帮忙我们实现这些功能
交集
'''求集合 A 与集合 B 的交集'''lst_a = [1,2,3,4,5]lst_b = [3,4,5,6,7]set_a = set(lst_a)set_b = set(lst_b)set_c = set_a.intersection(lst_b)print(list(set_c))
并集:
并集
'''求集合 A 与集合 B 的并集'''lst_a = [1,2,3,4,5]lst_b = [3,4,5,6,7]set_a = set(lst_a)set_b = set(lst_b)set_c = set_a.union(set_b)print(list(set_c))
补集
'''集合 A 关于集合 B 的补集(B - A)'''lst_a = [1,2,3,4,5]lst_b = [3,4,5,6,7]set_a = set(lst_a)set_b = set(lst_b)set_c = set_b.difference(set_a)print(list(set_c))
是不是非常的哇塞?[微笑]
那么大家想过没有这些运算有啥用?
可以思考一下。
标签: #python交叉排序 #python中的并运算 #c语言实现集合的交差并运算