|
5 | 5 | <link href="https://learnbyexample.github.io/atom.xml" rel="self" type="application/atom+xml"/>
|
6 | 6 | <link href="https://learnbyexample.github.io"/>
|
7 | 7 | <generator uri="https://www.getzola.org/">Zola</generator>
|
8 |
| - <updated>2023-04-25T00:00:00+00:00</updated> |
| 8 | + <updated>2023-05-03T00:00:00+00:00</updated> |
9 | 9 | <id>https://learnbyexample.github.io/atom.xml</id>
|
| 10 | + <entry xml:lang="en"> |
| 11 | + <title>Python tip 27: enumerate() function</title> |
| 12 | + <published>2023-05-03T00:00:00+00:00</published> |
| 13 | + <updated>2023-05-03T00:00:00+00:00</updated> |
| 14 | + <link rel="alternate" href="https://learnbyexample.github.io/tips/python-tip-27/" type="text/html"/> |
| 15 | + <id>https://learnbyexample.github.io/tips/python-tip-27/</id> |
| 16 | + <content type="html"><p>When you use a <code>for</code> loop, you get one element per each iteration. If you need the <em>index</em> of the elements as well, use the <a href="https://docs.python.org/3/library/functions.html#enumerate">enumerate()</a> built-in function. You'll get a <code>tuple</code> value per each iteration, containing index (starting with <code>0</code> by default) and the value at that index.</p> |
| 17 | +<pre data-lang="python" style="background-color:#f5f5f5;color:#1f1f1f;" class="language-python "><code class="language-python" data-lang="python"><span style="color:#72ab00;">&gt;&gt;&gt; </span><span>nums </span><span style="color:#72ab00;">= </span><span>[</span><span style="color:#b3933a;">42</span><span>, </span><span style="color:#b3933a;">3.14</span><span>, </span><span style="color:#72ab00;">-</span><span style="color:#b3933a;">2</span><span>, </span><span style="color:#b3933a;">1000</span><span>] |
| 18 | +</span><span style="color:#72ab00;">&gt;&gt;&gt; for </span><span>t </span><span style="color:#72ab00;">in </span><span style="color:#b39f04;">enumerate</span><span>(nums): |
| 19 | +</span><span style="color:#b3933a;">... </span><span style="color:#b39f04;">print</span><span>(t) |
| 20 | +</span><span style="color:#b3933a;">... |
| 21 | +</span><span>(</span><span style="color:#b3933a;">0</span><span>, </span><span style="color:#b3933a;">42</span><span>) |
| 22 | +</span><span>(</span><span style="color:#b3933a;">1</span><span>, </span><span style="color:#b3933a;">3.14</span><span>) |
| 23 | +</span><span>(</span><span style="color:#b3933a;">2</span><span>, </span><span style="color:#72ab00;">-</span><span style="color:#b3933a;">2</span><span>) |
| 24 | +</span><span>(</span><span style="color:#b3933a;">3</span><span>, </span><span style="color:#b3933a;">1000</span><span>) |
| 25 | +</span><span> |
| 26 | +</span><span style="color:#72ab00;">&gt;&gt;&gt; </span><span>names </span><span style="color:#72ab00;">= </span><span>[</span><span style="color:#d07711;">&#39;Jo&#39;</span><span>, </span><span style="color:#d07711;">&#39;Joe&#39;</span><span>, </span><span style="color:#d07711;">&#39;Jon&#39;</span><span>] |
| 27 | +</span><span style="color:#72ab00;">&gt;&gt;&gt; </span><span>[(n1, n2) </span><span style="color:#72ab00;">for </span><span>i, n1 </span><span style="color:#72ab00;">in </span><span style="color:#b39f04;">enumerate</span><span>(names) </span><span style="color:#72ab00;">for </span><span>n2 </span><span style="color:#72ab00;">in </span><span>names[i</span><span style="color:#72ab00;">+</span><span style="color:#b3933a;">1</span><span>:]] |
| 28 | +</span><span>[(</span><span style="color:#d07711;">&#39;Jo&#39;</span><span>, </span><span style="color:#d07711;">&#39;Joe&#39;</span><span>), (</span><span style="color:#d07711;">&#39;Jo&#39;</span><span>, </span><span style="color:#d07711;">&#39;Jon&#39;</span><span>), (</span><span style="color:#d07711;">&#39;Joe&#39;</span><span>, </span><span style="color:#d07711;">&#39;Jon&#39;</span><span>)] |
| 29 | +</span></code></pre> |
| 30 | +<p>By setting the <code>start</code> argument, you can change the initial value of the index.</p> |
| 31 | +<pre data-lang="python" style="background-color:#f5f5f5;color:#1f1f1f;" class="language-python "><code class="language-python" data-lang="python"><span style="color:#72ab00;">&gt;&gt;&gt; </span><span>items </span><span style="color:#72ab00;">= </span><span>(</span><span style="color:#d07711;">&#39;car&#39;</span><span>, </span><span style="color:#d07711;">&#39;table&#39;</span><span>, </span><span style="color:#d07711;">&#39;book&#39;</span><span>) |
| 32 | +</span><span style="color:#72ab00;">&gt;&gt;&gt; for </span><span>idx, val </span><span style="color:#72ab00;">in </span><span style="color:#b39f04;">enumerate</span><span>(items, </span><span style="color:#5597d6;">start</span><span style="color:#72ab00;">=</span><span style="color:#b3933a;">1</span><span>): |
| 33 | +</span><span style="color:#b3933a;">... </span><span style="color:#b39f04;">print</span><span>(</span><span style="color:#668f14;">f</span><span style="color:#d07711;">&#39;</span><span>{idx}</span><span style="color:#d07711;">: </span><span>{val}</span><span style="color:#d07711;">&#39;</span><span>) |
| 34 | +</span><span style="color:#b3933a;">... |
| 35 | +</span><span style="color:#b3933a;">1</span><span>: car |
| 36 | +</span><span style="color:#b3933a;">2</span><span>: table |
| 37 | +</span><span style="color:#b3933a;">3</span><span>: book |
| 38 | +</span></code></pre> |
| 39 | +<p><strong>Video demo</strong>:</p> |
| 40 | +<p align="center"><iframe width="560" height="315" loading="lazy" src="https://www.youtube.com/embed/8a-Lg4mx1wA" title="YouTube video player" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p> |
| 41 | +<br> |
| 42 | +<p><img src="/images/info.svg" alt="info" /> See also my <a href="https://github.com/learnbyexample/100_page_python_intro">100 Page Python Intro</a> ebook.</p> |
| 43 | +</content> |
| 44 | + </entry> |
10 | 45 | <entry xml:lang="en">
|
11 | 46 | <title>Vim tip 25: substitute flags</title>
|
12 | 47 | <published>2023-04-25T00:00:00+00:00</published>
|
|
0 commit comments