Python中按数字阈值排序的有效方法?
给定一个字典流,每个字典都有唯一的数字ID,根据不会线性增加的阈值生成ID列表(或映射到排序列表的格式)的最有效方法是什么(算法应该是决定项目属于哪个组的最有效方法(假设您的组已排序)。事实上,页面底部有一个与您想要实现的类似的示例Python中按数字阈值排序的有效方法?,python,python-3.x,Python,Python 3.x,给定一个字典流,每个字典都有唯一的数字ID,根据不会线性增加的阈值生成ID列表(或映射到排序列表的格式)的最有效方法是什么(算法应该是决定项目属于哪个组的最有效方法(假设您的组已排序)。事实上,页面底部有一个与您想要实现的类似的示例 >>> import bisect >>> bins = [50, 100, 150, 200] >>> bisect.bisect(bins, 30) 0 >>> bisect.bisect(
>>> import bisect
>>> bins = [50, 100, 150, 200]
>>> bisect.bisect(bins, 30)
0
>>> bisect.bisect(bins, 60)
1
>>> bisect.bisect(bins, 220)
4
总而言之
for a_dict in dicts:
ID = a_dict['id'] # don't use Python built-in names
index = bisect.bisect(bins, ID)
groups[index].append(ID)
请看,@ZeinabMardi这有什么关系?@Reti43谢谢你的快速回答,这在我的例子中非常有效。@wish请看
>>> import bisect
>>> bins = [50, 100, 150, 200]
>>> bisect.bisect(bins, 30)
0
>>> bisect.bisect(bins, 60)
1
>>> bisect.bisect(bins, 220)
4
for a_dict in dicts:
ID = a_dict['id'] # don't use Python built-in names
index = bisect.bisect(bins, ID)
groups[index].append(ID)