loc*_*boy 19 python graph list set
让我们说我有一个图表,想看看是否b in N[a].哪个更快实现,为什么?
a, b = range(2)
N = [set([b]), set([a,b])]
Run Code Online (Sandbox Code Playgroud)
要么
N= [[b],[a,b]]
Run Code Online (Sandbox Code Playgroud)
这显然过于简单,但想象图表变得非常密集.
这一切都取决于你想要完成的事情.逐字使用您的示例,使用列表更快,因为您不必经历创建集合的开销:
import timeit
def use_sets(a, b):
return [set([b]), set([a, b])]
def use_lists(a, b):
return [[b], [a, b]]
t=timeit.Timer("use_sets(a, b)", """from __main__ import use_sets
a, b = range(2)""")
print "use_sets()", t.timeit(number=1000000)
t=timeit.Timer("use_lists(a, b)", """from __main__ import use_lists
a, b = range(2)""")
print "use_lists()", t.timeit(number=1000000)
Run Code Online (Sandbox Code Playgroud)
生产:
use_sets() 1.57522511482
use_lists() 0.783344984055
Run Code Online (Sandbox Code Playgroud)
但是,由于此处已提及的原因,在搜索大型集时,您将从使用集中受益.你的例子不可能告诉你哪个拐点适合你,以及你是否会看到这个好处.
我建议你两种方式进行测试,然后根据具体用例选择更快的方式.
| 归档时间: |
|
| 查看次数: |
10776 次 |
| 最近记录: |