我有b
存储区0 .... b-1和m
苹果0 .... m-1。在开始时,所有的苹果都放在桶0中。python中的一组分区
然后运行一些分析会导致苹果在桶之间移动。我已经通过创建一个2D列表(如桶)来实现这个功能,在这个2D列表中,苹果ids被删除,并且在需要在桶之间移动时添加。然而,这对我的分析来说效率非常低,因为这些运动的数量是数百万或数十亿。所以,我想知道是否有更好的解决方案来实现这样的结构?
顺便说一句,标题被选中,因为这是非常相似的设置问题的分区,其中没有成员可以放置在超过1个子集。这里也与4个苹果和3桶的例子,使之更加清楚:
time 0:
a=[[0,1,2,3],[],[]]
time 1: (say apple 3 needs to be moved to bucket 2)
a=[[0,1,2],[],[3]]
'[错误范围(m)]'是过度杀伤性的。对于不可变的对象,你可以做'[False] * m'。使用'bitarray'是一个非常好的主意。 –
@ Jean-FrançoisFabre:谢谢你的建议。 –
不客气(那是次要的)。我冒昧地稍微修改了你的帖子。删除“(带套)”,并将“beter”修改为“better”。很多像这样的:) –