擅长:python、mysql、java
<p>完成循环要花多少时间?在我的测试用例中,它只需要几百毫秒。你知道吗</p>
<pre><code>import random
# generate the nested lists
a = list('abcdefghijklmnop')
nested_list = [ [random.choice(a) for x in range(random.randint(1,30))]
for n in range(700000)]
%%timeit -n 10
word = 'c'
b = [word in x for x in nested_list]
# 10 loops, best of 3: 191 ms per loop
</code></pre>
<hr/>
<p>将每个内部列表减少到一个集合可以节省一些时间。。。你知道吗</p>
<pre><code>nested_sets = [set(x) for x in nested_list]
%%timeit -n 10
word = 'c'
b = [word in s for s in nested_sets]
# 10 loops, best of 3: 132 ms per loop
</code></pre>
<p>一旦你把它变成一个集合列表,你就可以建立一个布尔元组列表。但没有实时节省。你知道吗</p>
<pre><code>%%timeit -n 10
words = list('abcde')
b = [(word in s for word in words) for s in nested_sets]
# 10 loops, best of 3: 749 ms per loop
</code></pre>