【发布时间】:2012-08-20 02:32:47
【问题描述】:
我有一个整数列表,我想编写一个函数来返回一个范围内的数字子集。类似 NumbersWithinRange(list, interval) 函数名...
即,
list = [4,2,1,7,9,4,3,6,8,97,7,65,3,2,2,78,23,1,3,4,5,67,8,100]
interval = [4,20]
results = NumbersWithinRange(list, interval) # [4,4,6,8,7,8]
也许我忘了在结果中再写一个数字,但这就是我的想法......
列表的长度可以达到 10/20 百万,范围通常为几百个。
关于如何使用 python 有效地做到这一点的任何建议 - 我正在考虑使用 bisect。
谢谢。
【问题讨论】:
-
您不应使用
list作为变量名。如果你这样做,Python 允许你(默默地)重新分配内置列表构造函数...... -
正确。这只是为了示例,我不会在代码中使用该名称。谢谢指正。
标签: python search sorting binary bisect