在Python中,假设我有两个集合A和B,以及对这两个集合的多个引用。在
是否有方法合并a和B两个集合,使得对这两个集合的所有引用都将引用新合并的集合?如果可能,运行时间是什么?在
A = {1,3}
B = {2,4}
aRef1 = A
aRef2 = A
bRef1 = B
bRef2 = B
MergeSets(A,B)
# Now, whenever I use any of (A, B, aRef1, aRef2, bRef1, bRef2)
# they refer to the same set which will be {1,2,3,4}
谢谢你
编辑:
有人一直在问我为什么要这么做,下面是我的一个回复的复制/粘贴:
So I know I can do A.update(B), to merge B into A, but then I'd have to iterate through all references to B and set them to refer to A. I was asking so I can avoid these extra iterations. I could supply more context to get a new approach to my specific scenario, but I'm more curious to know if this is possible in python as a general case.
此外,我的问题似乎已经得到了回答,而结论是这是不可能的。再次感谢大家:)
给予:
如果希望所有六个对象都引用同一个集合而不是同一个对象:
^{pr2}$如果要使用
mergeList
函数将所有六个对象都引用同一个集而不是同一个对象:如果希望所有六个对象都引用同一个集合,同一个对象:
使用
mergeList
会让所有变量引用同一个对象有点棘手根据你所做的分配,他们目前都在引用各自的集合}。例如,
A
或{bRef1
:原始的
^{pr2}$set
是否通过修改新集合进行修改取决于您执行的操作类型。如果执行就地操作,例如:然后检查原始变量
B
,可以看到它确实已经更新:但是,当合并两个集时,除非同时执行在位操作并因此显式更新其中一个集,否则将创建一个新对象:
但是,如果您通过合并其中一个集合
A
或B
与另一个集合合并来更新它们,假设开始使用2
不同的对象,则无法将其更改为引用同一对象的所有集。在将参数作为引用传递给函数,因此不能将参数作为参数传递给函数。另一种方法是改变传递给函数的对象。在
merge_sets
以线性时间执行。在相关问题 更多 >
编程相关推荐