假设我有两套:
s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6, 7, 8}
我想把s1
分成{4, 5}
和{1, 2, 3}
,其中第一部分是s1
和s2
的交点,第二部分是余数
我可以这样做:
part1 = s1.intersection(s2)
part2 = s1.difference(s2)
但在我看来,这样我将执行两次完全相同的操作,在大型设备上可能需要很长时间。我可以用Python中的一个操作来完成吗?我想做一些像
part1, part2 = slit_sets(s1, s2)
为什么不使用简单循环:
没有一个内置操作会同时返回交叉点和的差值,因此您始终需要调用两个方法
直觉上我预料到了
快于
由于它计算的是一个较小的集合的差异,但这是不真实的-
timeit
即使对于包含数千个元素的大型集合,结果也大致相等。相反,使用以下方法可以实现约5%的轻微改善相关问题 更多 >
编程相关推荐