Skip to content

Commit 9dfe5a1

Browse files
added 23rd Python tip
1 parent bb83eff commit 9dfe5a1

File tree

9 files changed

+113
-7
lines changed

9 files changed

+113
-7
lines changed

Diff for: README.md

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ I'm addicted to reading fantasy/sci-fi books, so I have a [blog](https://learnby
6565

6666
## Tips
6767

68+
* [Python tip 23: map, filter and reduce](https://learnbyexample.github.io/tips/python-tip-23/)
6869
* [Vim tip 21: working with tabs](https://learnbyexample.github.io/tips/vim-tip-21/)
6970
* [CLI tip 22: grep options to suppress stdout and stderr](https://learnbyexample.github.io/tips/cli-tip-22/)
7071
* [Python tip 22: possessive quantifiers](https://learnbyexample.github.io/tips/python-tip-22/)

Diff for: atom.xml

+64-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,71 @@
55
<link href="https://learnbyexample.github.io/atom.xml" rel="self" type="application/atom+xml"/>
66
<link href="https://learnbyexample.github.io"/>
77
<generator uri="https://www.getzola.org/">Zola</generator>
8-
<updated>2023-02-04T00:00:00+00:00</updated>
8+
<updated>2023-02-07T00:00:00+00:00</updated>
99
<id>https://learnbyexample.github.io/atom.xml</id>
10+
<entry xml:lang="en">
11+
<title>Python tip 23: map, filter and reduce</title>
12+
<published>2023-02-07T00:00:00+00:00</published>
13+
<updated>2023-02-07T00:00:00+00:00</updated>
14+
<link rel="alternate" href="https://learnbyexample.github.io/tips/python-tip-23/" type="text/html"/>
15+
<id>https://learnbyexample.github.io/tips/python-tip-23/</id>
16+
<content type="html">&lt;p&gt;Many operations on container objects can be defined in terms of these three concepts. For example, if you want to sum the square of all even numbers:&lt;&#x2F;p&gt;
17+
&lt;ul&gt;
18+
&lt;li&gt;separating out even numbers is &lt;strong&gt;Filter&lt;&#x2F;strong&gt; (i.e. only elements that satisfy a condition are retained)&lt;&#x2F;li&gt;
19+
&lt;li&gt;square of such numbers is &lt;strong&gt;Map&lt;&#x2F;strong&gt; (i.e. each element is transformed by a mapping function)&lt;&#x2F;li&gt;
20+
&lt;li&gt;final sum is &lt;strong&gt;Reduce&lt;&#x2F;strong&gt; (i.e. you get one value out of multiple values)&lt;&#x2F;li&gt;
21+
&lt;&#x2F;ul&gt;
22+
&lt;p&gt;One or more of these operations may be absent depending on the problem statement. Each of these steps will be first illustrated using straightforward code and then the equivalent list comprehensions (and generator expressions) are also shown.&lt;&#x2F;p&gt;
23+
&lt;p&gt;The first of these steps could look like:&lt;&#x2F;p&gt;
24+
&lt;pre data-lang=&quot;python&quot; style=&quot;background-color:#f5f5f5;color:#1f1f1f;&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;&#x2F;span&gt;&lt;span style=&quot;background-color:#562d56bf;color:#f8f8f8;&quot;&gt;def&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5597d6;&quot;&gt;get_evens&lt;&#x2F;span&gt;&lt;span&gt;(iterable):
25+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span&gt;op &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;= &lt;&#x2F;span&gt;&lt;span&gt;[]
26+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;for &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;in &lt;&#x2F;span&gt;&lt;span&gt;iterable:
27+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;% &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;2 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;== &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;:
28+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span&gt;op.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5597d6;&quot;&gt;append&lt;&#x2F;span&gt;&lt;span&gt;(n)
29+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;return &lt;&#x2F;span&gt;&lt;span&gt;op
30+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;...
31+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;&#x2F;span&gt;&lt;span&gt;nums &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;= &lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;100&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;53&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;32&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;11&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;5&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;]
32+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5597d6;&quot;&gt;get_evens&lt;&#x2F;span&gt;&lt;span&gt;(nums)
33+
&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;100&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;32&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;]
34+
&lt;&#x2F;span&gt;&lt;span&gt;
35+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;&#x2F;span&gt;&lt;span&gt;[n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;for &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;in &lt;&#x2F;span&gt;&lt;span&gt;nums &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;% &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;2 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;== &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;]
36+
&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;100&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;32&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;]
37+
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
38+
&lt;p&gt;The second step could be:&lt;&#x2F;p&gt;
39+
&lt;pre data-lang=&quot;python&quot; style=&quot;background-color:#f5f5f5;color:#1f1f1f;&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;&#x2F;span&gt;&lt;span style=&quot;background-color:#562d56bf;color:#f8f8f8;&quot;&gt;def&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5597d6;&quot;&gt;sqr_evens&lt;&#x2F;span&gt;&lt;span&gt;(iterable):
40+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span&gt;op &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;= &lt;&#x2F;span&gt;&lt;span&gt;[]
41+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;for &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;in &lt;&#x2F;span&gt;&lt;span&gt;iterable:
42+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;% &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;2 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;== &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;:
43+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span&gt;op.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5597d6;&quot;&gt;append&lt;&#x2F;span&gt;&lt;span&gt;(n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span&gt;n)
44+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;return &lt;&#x2F;span&gt;&lt;span&gt;op
45+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;...
46+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5597d6;&quot;&gt;sqr_evens&lt;&#x2F;span&gt;&lt;span&gt;(nums)
47+
&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;10000&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;1024&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span&gt;]
48+
&lt;&#x2F;span&gt;&lt;span&gt;
49+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;&#x2F;span&gt;&lt;span&gt;[n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;for &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;in &lt;&#x2F;span&gt;&lt;span&gt;nums &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;% &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;2 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;== &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;]
50+
&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;10000&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;1024&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span&gt;]
51+
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
52+
&lt;p&gt;And finally, the third step could be:&lt;&#x2F;p&gt;
53+
&lt;pre data-lang=&quot;python&quot; style=&quot;background-color:#f5f5f5;color:#1f1f1f;&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;&#x2F;span&gt;&lt;span style=&quot;background-color:#562d56bf;color:#f8f8f8;&quot;&gt;def&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5597d6;&quot;&gt;sum_sqr_evens&lt;&#x2F;span&gt;&lt;span&gt;(iterable):
54+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span&gt;total &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;= &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0
55+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;for &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;in &lt;&#x2F;span&gt;&lt;span&gt;iterable:
56+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;% &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;2 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;== &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;:
57+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span&gt;total &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;+= &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span&gt;n
58+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;... &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;return &lt;&#x2F;span&gt;&lt;span&gt;total
59+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;...
60+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5597d6;&quot;&gt;sum_sqr_evens&lt;&#x2F;span&gt;&lt;span&gt;(nums)
61+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;11028
62+
&lt;&#x2F;span&gt;&lt;span&gt;
63+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b39f04;&quot;&gt;sum&lt;&#x2F;span&gt;&lt;span&gt;(n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;for &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;in &lt;&#x2F;span&gt;&lt;span&gt;nums &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;% &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;2 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#72ab00;&quot;&gt;== &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;)
64+
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b3933a;&quot;&gt;11028
65+
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
66+
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;info.svg&quot; alt=&quot;info&quot; &#x2F;&gt; You can also use &lt;a href=&quot;https:&#x2F;&#x2F;docs.python.org&#x2F;3&#x2F;library&#x2F;functions.html#map&quot;&gt;map()&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;docs.python.org&#x2F;3&#x2F;library&#x2F;functions.html#filter&quot;&gt;filter()&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;docs.python.org&#x2F;3&#x2F;library&#x2F;functools.html#functools.reduce&quot;&gt;functools.reduce()&lt;&#x2F;a&gt; for such problems.&lt;&#x2F;p&gt;
67+
&lt;p&gt;&lt;strong&gt;Video demo&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
68+
&lt;p align=&quot;center&quot;&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; loading=&quot;lazy&quot; src=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;embed&#x2F;jB4cazhpThA&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;&#x2F;iframe&gt;&lt;&#x2F;p&gt;
69+
&lt;br&gt;
70+
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;info.svg&quot; alt=&quot;info&quot; &#x2F;&gt; See also my &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;learnbyexample&#x2F;100_page_python_intro&quot;&gt;100 Page Python Intro&lt;&#x2F;a&gt; ebook.&lt;&#x2F;p&gt;
71+
</content>
72+
</entry>
1073
<entry xml:lang="en">
1174
<title>Vim tip 21: working with tabs</title>
1275
<published>2023-02-01T00:00:00+00:00</published>

Diff for: sitemap.xml

+5-1
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@
413413
</url>
414414
<url>
415415
<loc>https://learnbyexample.github.io/tips/</loc>
416-
<lastmod>2023-02-01</lastmod>
416+
<lastmod>2023-02-07</lastmod>
417417
</url>
418418
<url>
419419
<loc>https://learnbyexample.github.io/tips/cli-tip-1/</loc>
@@ -563,6 +563,10 @@
563563
<loc>https://learnbyexample.github.io/tips/python-tip-22/</loc>
564564
<lastmod>2023-01-18</lastmod>
565565
</url>
566+
<url>
567+
<loc>https://learnbyexample.github.io/tips/python-tip-23/</loc>
568+
<lastmod>2023-02-07</lastmod>
569+
</url>
566570
<url>
567571
<loc>https://learnbyexample.github.io/tips/python-tip-3/</loc>
568572
<lastmod>2022-05-16</lastmod>

0 commit comments

Comments
 (0)