我希望您能够以Python 3.x为例,提供一种高效快速的方式来完成以下操作。如果性能足够好,我也可以使用第三方库,例如Numpy。
我有一个包含数十万条记录的范围列表。它们实际上不是range()函数,而是包含边界数字的列表,例如:
我有一个包含数十万条记录的范围列表。它们实际上不是range()函数,而是包含边界数字的列表,例如:
list_a = [(1, 100), (300, 550), (551, 1999)]
然后,我迭代了数十万个其他范围(边界数字)。我想找出它们是否包含上述任何一个现有范围。例如:
(0, 600) contains list_a[0] and list_a[1]
(550, 2000) contains list_a[2]
(2000, 2200) does not contain an existing range
目前,如果处理的数据量较大,执行以下类似操作将会非常缓慢:
for start, end in get_next_range():
for r in list_a:
if r[0] >= start and r[1] <= end:
# do something
else:
# do something else
非常感谢您的帮助!