You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
we will check if their absolute difference is sufficiently small:</p>
605
605
<divclass="highlight-python"><divclass="highlight"><pre><span></span><spanclass="c1"># checking if two float values are "almost equal"</span>
<p>The <codeclass="docutils literal"><spanclass="pre">bool</span></code> type has additional utilities, which will be discussed in
@@ -858,7 +859,7 @@ <h3>Introducing the string type<a class="headerlink" href="#Introducing-the-stri
858
859
<p>As the string stores a <em>sequence</em> of characters, Python provides a means
859
860
for accessing individual characters and subsequences of characters from
860
861
a string:</p>
861
-
<divclass="highlight-python"><divclass="highlight"><pre><span></span><spanclass="gp">>>> </span><spanclass="n">sentence</span><spanclass="o">=</span><spanclass="s2">"The cat in the hat.</span>
862
+
<divclass="highlight-python"><divclass="highlight"><pre><span></span><spanclass="gp">>>> </span><spanclass="n">sentence</span><spanclass="o">=</span><spanclass="s2">"The cat in the hat."</span>
<divclass="highlight-python"><divclass="highlight"><pre><span></span><spanclass="c1"># test for membership in a list</span>
269
269
<spanclass="o">>>></span><spanclass="o">-</span><spanclass="mi">1</span><spanclass="ow">in</span><spanclass="p">[</span><spanclass="mi">1</span><spanclass="p">,</span><spanclass="s2">"moo"</span><spanclass="p">,</span><spanclass="mi">3</span><spanclass="p">,</span><spanclass="bp">True</span><spanclass="p">,</span><spanclass="mi">5</span><spanclass="p">,</span><spanclass="bp">None</span><spanclass="p">,</span><spanclass="mi">7</span><spanclass="p">,</span><spanclass="mi">8</span><spanclass="p">]</span><spanclass="c1"># takes 295 nanoseconds on my machine</span>
270
+
<spanclass="bp">False</span>
270
271
271
272
<spanclass="c1"># test for membership in a set</span>
272
273
<spanclass="o">>>></span><spanclass="o">-</span><spanclass="mi">1</span><spanclass="ow">in</span><spanclass="p">{</span><spanclass="mi">1</span><spanclass="p">,</span><spanclass="s2">"moo"</span><spanclass="p">,</span><spanclass="mi">3</span><spanclass="p">,</span><spanclass="bp">True</span><spanclass="p">,</span><spanclass="mi">5</span><spanclass="p">,</span><spanclass="bp">None</span><spanclass="p">,</span><spanclass="mi">7</span><spanclass="p">,</span><spanclass="mi">8</span><spanclass="p">}</span><spanclass="c1"># takes 65 nanoseconds on my machine</span>
274
+
<spanclass="bp">False</span>
273
275
</pre></div>
274
276
</div>
275
277
<p>We get a 4.5x speedup in our membership test just by using a set instead
<spanclass="c1"># query the length of a generator</span>
453
-
<spanclass="o">>>></span><spanclass="nb">len</span><spanclass="p">(</span><spanclass="n">generator</span><spanclass="p">)</span><spanclass="c1"># TypeError: object of type 'generator' has no len()</span>
<spanclass="o">>>></span><spanclass="n">generator</span><spanclass="p">[</span><spanclass="mi">2</span><spanclass="p">]</span><spanclass="c1"># TypeError: 'generator' object is not subscriptable</span>
<h2><codeclass="docutils literal"><spanclass="pre">enumerate</span></code><aclass="headerlink" href="#enumerate" title="Permalink to this headline">¶</a></h2>
<spanclass="go"><itertools.chain at 0x20de109ec18></span>
279
281
</pre></div>
280
282
</div>
281
283
</div>
282
284
<divclass="section" id="itertools.combinations">
283
285
<h2><codeclass="docutils literal"><spanclass="pre">itertools.combinations</span></code><aclass="headerlink" href="#itertools.combinations" title="Permalink to this headline">¶</a></h2>
284
286
<p>Generate all length-n “combinations” from an iterable:</p>
0 commit comments