<!doctype html><html><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><title>Python tricks - Njord tech blog</title><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="The blog post will just be a long list of short summaries of python tricks, that I find good and like to remember(and find fast). Lets go!
Table of Contents Example Example2 Third Example Fourth Example List List comprehensions List comprehensions are a neat one liner python trick. Not only is it handy it also sometimes faster.
a = [1, 2, 3, 4, 5] b = [val**2 for val in a] Lazy initialize list To initialize a list with x values that have the same number:"><meta property="og:image" content><meta property="og:title" content="Python tricks"><meta property="og:description" content="The blog post will just be a long list of short summaries of python tricks, that I find good and like to remember(and find fast). Lets go!
Table of Contents Example Example2 Third Example Fourth Example List List comprehensions List comprehensions are a neat one liner python trick. Not only is it handy it also sometimes faster.
a = [1, 2, 3, 4, 5] b = [val**2 for val in a] Lazy initialize list To initialize a list with x values that have the same number:"><meta property="og:type" content="article"><meta property="og:url" content="https://www.njordy.com/2024/01/21/python-tricks.md"><meta property="article:section" content="posts"><meta property="article:published_time" content="2024-01-28T00:00:00+00:00"><meta property="article:modified_time" content="2024-01-28T00:00:00+00:00"><meta name=twitter:card content="summary"><meta name=twitter:title content="Python tricks"><meta name=twitter:description content="The blog post will just be a long list of short summaries of python tricks, that I find good and like to remember(and find fast). Lets go!
Table of Contents Example Example2 Third Example Fourth Example List List comprehensions List comprehensions are a neat one liner python trick. Not only is it handy it also sometimes faster.
a = [1, 2, 3, 4, 5] b = [val**2 for val in a] Lazy initialize list To initialize a list with x values that have the same number:"><link href=https://www.njordy.com/css/fonts.2c2227b81b1970a03e760aa2e6121cd01f87c88586803cbb282aa224720a765f.css rel=stylesheet><link rel=stylesheet type=text/css media=screen href=https://www.njordy.com/css/main.ac08a4c9714baa859217f92f051deb58df2938ec352b506df655005dcaf98cc0.css></head><body><div class=content><header><div class=main><a href=https://www.njordy.com/>Njord tech blog</a></div><nav><a href=../../../>Home</a>
<a href=../../../posts>All posts</a>
<a href=../../../about>About</a></nav></header><main><article><div class=title><h1 class=title>Python tricks</h1><div class=meta>Posted on Jan 28, 2024</div></div><section class=body><p>The blog post will just be a long list of short summaries of python tricks, that I find good and like to remember(and find fast). Lets go!</p><h1 id=table-of-contents>Table of Contents</h1><ol><li><a href=#example>Example</a></li><li><a href=#example2>Example2</a></li><li><a href=#third-example>Third Example</a></li><li><a href=#fourth-examplehttpwwwfourthexamplecom>Fourth Example</a></li></ol><h2 id=list>List</h2><h3 id=list-comprehensions>List comprehensions</h3><p>List comprehensions are a neat one liner python trick. Not only is it handy it also sometimes faster.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> [<span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>2</span>, <span style=color:#ae81ff>3</span>, <span style=color:#ae81ff>4</span>, <span style=color:#ae81ff>5</span>]
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> [val<span style=color:#f92672>**</span><span style=color:#ae81ff>2</span> <span style=color:#66d9ef>for</span> val <span style=color:#f92672>in</span> a]
</span></span></code></pre></div><h3 id=lazy-initialize-list>Lazy initialize list</h3><p>To initialize a list with x values that have the same number:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a<span style=color:#f92672>=</span>[<span style=color:#ae81ff>1</span>]<span style=color:#f92672>*</span><span style=color:#ae81ff>1000</span>
</span></span></code></pre></div><p>we can do the same for lists of x values:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> [<span style=color:#ae81ff>1</span>,<span style=color:#ae81ff>2</span>,<span style=color:#ae81ff>3</span>]
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> a <span style=color:#f92672>*</span><span style=color:#ae81ff>10</span>
</span></span><span style=display:flex><span>b[<span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>2</span>, <span style=color:#ae81ff>3</span>, <span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>2</span>, <span style=color:#ae81ff>3</span>, <span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>2</span>, <span style=color:#ae81ff>3</span>, <span style=color:#f92672>...</span>]
</span></span></code></pre></div><h2 id=strings>Strings</h2><h3 id=concatenate-strings>Concatenate strings</h3><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> <span style=color:#e6db74>&#34;hello &#34;</span>
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> <span style=color:#e6db74>&#34;world&#34;</span>
</span></span><span style=display:flex><span>print(a <span style=color:#f92672>+</span> b)
</span></span></code></pre></div><h3 id=selecting-chars-in-string>Selecting chars in string</h3><p>Strings can be index as a list</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> <span style=color:#e6db74>&#34;hello&#34;</span>
</span></span><span style=display:flex><span>print(a[<span style=color:#ae81ff>1</span>])
</span></span></code></pre></div><h3 id=get-length-of-string>Get length of string</h3><p>To get the length of a string use <code>len</code></p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> <span style=color:#e6db74>&#34;hello&#34;</span>
</span></span><span style=display:flex><span>print(len(a))
</span></span></code></pre></div><h3 id=replace-in-string>Replace in string</h3><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span><span style=color:#e6db74>&#34;Hello world&#34;</span><span style=color:#f92672>.</span>replace(<span style=color:#e6db74>&#34;world&#34;</span>, <span style=color:#e6db74>&#34;John&#34;</span>)
</span></span></code></pre></div><h3 id=count-string-or-substring>Count string or substring</h3><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>word <span style=color:#f92672>=</span> <span style=color:#e6db74>&#34;Hello world&#34;</span>
</span></span><span style=display:flex><span>print(word<span style=color:#f92672>.</span>count(<span style=color:#e6db74>&#34; &#34;</span>))
</span></span></code></pre></div><h3 id=to-repeat-string>To repeat string</h3><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>word  <span style=color:#f92672>=</span> <span style=color:#e6db74>&#34;Hello world&#34;</span> <span style=color:#f92672>*</span> <span style=color:#ae81ff>3</span>
</span></span><span style=display:flex><span>print(word)
</span></span></code></pre></div><h3 id=split>Split</h3><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> <span style=color:#e6db74>&#34;hello world&#34;</span>
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> a<span style=color:#f92672>.</span>split(<span style=color:#e6db74>&#34; &#34;</span>)
</span></span><span style=display:flex><span>print(a[<span style=color:#ae81ff>0</span>])
</span></span></code></pre></div><h3 id=remove-white-spaces>Remove white spaces</h3><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python></code></pre></div><h2 id=collections>Collections</h2><h2 id=python-general>Python general</h2><h3 id=analyze-memory>Analyze memory</h3><p>In order to check the memory:</p><pre tabindex=0><code>import sys
a=10
print(sys.getsizeof(a))
</code></pre><h3 id=swapping-values>Swapping values</h3><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> <span style=color:#ae81ff>10</span>
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> <span style=color:#ae81ff>20</span>
</span></span><span style=display:flex><span>a, b <span style=color:#f92672>=</span> b, a 
</span></span></code></pre></div><h3 id=invert-dict>Invert dict</h3><p>The easiest way to invert a dict is to use a dict comprehension:</p><pre tabindex=0><code>a = {‘a’: 1, ‘b’: 2,‘c’: 3,‘d’: 4,‘e’: 5,‘f’: 6, ‘g’: 7}
b = {v: k for k, v in dict1.items()}
print(b)
</code></pre><h3 id=combine-two-python-list>Combine two python list</h3><p>In order to combine to lists <code>extends</code> is the way to go, if you use <code>append</code> it will result in that you get a list with a list within.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> [<span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>2</span>, <span style=color:#ae81ff>3</span>]
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> [<span style=color:#ae81ff>2</span>, <span style=color:#ae81ff>4</span>, <span style=color:#ae81ff>6</span>]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>a<span style=color:#f92672>.</span>extends(b)
</span></span><span style=display:flex><span>print(a)
</span></span></code></pre></div><h3 id=transpose-matrix>Transpose matrix:</h3><p>Cool trick using <code>zip</code> for transposing a matrix:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>mat <span style=color:#f92672>=</span> [[<span style=color:#ae81ff>8</span>, <span style=color:#ae81ff>9</span>, <span style=color:#ae81ff>10</span>], [<span style=color:#ae81ff>11</span>, <span style=color:#ae81ff>12</span>, <span style=color:#ae81ff>13</span>]]
</span></span><span style=display:flex><span>mut <span style=color:#f92672>=</span> zip(<span style=color:#f92672>*</span>mat)
</span></span><span style=display:flex><span>trans <span style=color:#f92672>=</span> list(mut)
</span></span></code></pre></div><h3 id=sorting>Sorting</h3><p>Python offers build in sorting through some of the data structures but also through <code>sorted</code> which is a function available.</p><p>To use it to sort a list:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> [<span style=color:#ae81ff>1</span>,<span style=color:#ae81ff>2</span>,<span style=color:#ae81ff>5</span>,<span style=color:#ae81ff>3</span>,<span style=color:#ae81ff>2</span>,<span style=color:#ae81ff>1</span>,<span style=color:#ae81ff>8</span>]
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> sorted(a)
</span></span><span style=display:flex><span>print(b)
</span></span></code></pre></div><p>If you have a multi layered data structure such a dict you can handle it like this:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> [{<span style=color:#e6db74>&#34;company&#34;</span>: <span style=color:#e6db74>&#34;Data&amp;IT&#34;</span>, <span style=color:#e6db74>&#34;employees&#34;</span>: <span style=color:#ae81ff>6</span>}, 
</span></span><span style=display:flex><span>        {<span style=color:#e6db74>&#34;company&#34;</span>: <span style=color:#e6db74>&#34;BK&#34;</span>, <span style=color:#e6db74>&#34;employees&#34;</span>: <span style=color:#ae81ff>800</span>}, 
</span></span><span style=display:flex><span>        {<span style=color:#e6db74>&#34;company&#34;</span>: <span style=color:#e6db74>&#34;ICA&#34;</span>, <span style=color:#e6db74>&#34;employees&#34;</span>: <span style=color:#ae81ff>9000</span>}
</span></span><span style=display:flex><span>        ]
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> sorted(a, key<span style=color:#f92672>=</span><span style=color:#66d9ef>lambda</span> x: x[<span style=color:#e6db74>&#34;employees&#34;</span>])
</span></span><span style=display:flex><span>print(b)
</span></span></code></pre></div><p>Default it is ascending order, to get id descending set <code>reverse=True</code></p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> [<span style=color:#ae81ff>1</span>,<span style=color:#ae81ff>2</span>,<span style=color:#ae81ff>5</span>,<span style=color:#ae81ff>3</span>,<span style=color:#ae81ff>2</span>,<span style=color:#ae81ff>1</span>,<span style=color:#ae81ff>8</span>]
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> sorted(a, reverse<span style=color:#f92672>=</span><span style=color:#66d9ef>True</span>)
</span></span><span style=display:flex><span>print(b)
</span></span></code></pre></div><h3 id=context-managment---with>Context Managment - With</h3><h3 id=slots>Slots</h3><h3 id=ignore-exceptions----contextlibsuppress>Ignore exceptions - contextlib.suppress</h3><h3 id=allany>All/Any</h3><p>As the name sounds <code>all</code> checks if all values in a iterable data structure is true.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> [<span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>2</span>, <span style=color:#ae81ff>3</span>, <span style=color:#ae81ff>4</span>, <span style=color:#ae81ff>5</span>]
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> [val <span style=color:#f92672>&gt;</span> <span style=color:#ae81ff>4</span> <span style=color:#66d9ef>for</span> val <span style=color:#f92672>in</span> a]
</span></span><span style=display:flex><span>print(all(b))
</span></span></code></pre></div><p><code>any</code> instead checks if any of the values are true.</p><pre tabindex=0><code>a = [1, 2, 3, 4, 5]
b = [val &gt; 4 for val in a]
print(any(b))
</code></pre><h3 id=lambda-functions>Lambda functions</h3><p>The keyword <code>lambda</code> allows for creating small anonymous functions and has the following syntax:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span><span style=color:#66d9ef>lambda</span> arguments : expression
</span></span></code></pre></div><p>example:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>x <span style=color:#f92672>=</span> <span style=color:#66d9ef>lambda</span> a : a <span style=color:#f92672>+</span> <span style=color:#ae81ff>10</span>
</span></span><span style=display:flex><span>print(x(<span style=color:#ae81ff>5</span>))
</span></span></code></pre></div><h3 id=generatorsyield>Generators/yield</h3><p>Python offers generators as a way to access the value at runtime instead of calculating the whole list first. This allows for saving on memory and is especially useful working with large objects where downstream processes will not need all at once. Using a comprehension expression it looks like this:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span>a <span style=color:#f92672>=</span> [<span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>2</span>, <span style=color:#ae81ff>3</span>, <span style=color:#ae81ff>4</span>, <span style=color:#ae81ff>5</span>]
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> (val<span style=color:#f92672>**</span><span style=color:#ae81ff>2</span> <span style=color:#66d9ef>for</span> val <span style=color:#f92672>in</span> a)
</span></span><span style=display:flex><span>print(next(b))
</span></span></code></pre></div><p>the important difference between the list comprehension and a generator comprehension is the square brackets vs the optional brackets. It can also be create using the <code>yield</code> keyword and a normal function.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span><span style=color:#66d9ef>def</span> <span style=color:#a6e22e>square_list</span>(n: list) <span style=color:#f92672>-&gt;</span> list:
</span></span><span style=display:flex><span>    <span style=color:#66d9ef>for</span> val <span style=color:#f92672>in</span> n: 
</span></span><span style=display:flex><span>        <span style=color:#66d9ef>yield</span> n 
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>a <span style=color:#f92672>=</span> [<span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>2</span>, <span style=color:#ae81ff>3</span>, <span style=color:#ae81ff>4</span>, <span style=color:#ae81ff>5</span>]
</span></span><span style=display:flex><span>print(next(square_list(a)))
</span></span></code></pre></div><h3 id=import-itertools>import itertools</h3><p>To unpack evenly structure lists of list python offers <code>itertools</code> which is part of the standard library</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span><span style=color:#f92672>import</span> itertools
</span></span><span style=display:flex><span>a <span style=color:#f92672>=</span> [[<span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>2</span>], [<span style=color:#ae81ff>3</span>, <span style=color:#ae81ff>4</span>], [<span style=color:#ae81ff>5</span>, <span style=color:#ae81ff>6</span>]]
</span></span><span style=display:flex><span>b <span style=color:#f92672>=</span> list(itertools<span style=color:#f92672>.</span>chain<span style=color:#f92672>.</span>from_iterable(a))
</span></span><span style=display:flex><span>print(b)
</span></span></code></pre></div><p>It will unpack one level.</p><h3 id=from-collections-import>from collections import</h3><p>The collections package is part of the standard lib and offers multiple useful tools.</p><h4 id=defaultdict>defaultdict</h4><p><code>defaultdict</code> offers the possibility to define default return values for a dict. Normally the return would be <code>KeyError!</code>
with a defaultdict a value to be set when trying to access a value that is not set. The default value can be one of: <code>List</code>, <code>Set</code> or <code>Int</code>. However you can explicitly always set a key to any kind like a normal dict.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span><span style=color:#f92672>from</span> collections <span style=color:#f92672>import</span> defaultdict
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>_map <span style=color:#f92672>=</span> defaultdict(list)
</span></span><span style=display:flex><span>_map[<span style=color:#e6db74>&#39;a&#39;</span>]<span style=color:#f92672>.</span>append(<span style=color:#ae81ff>1</span>)
</span></span><span style=display:flex><span>_map[<span style=color:#e6db74>&#39;b&#39;</span>]<span style=color:#f92672>.</span>append(<span style=color:#ae81ff>2</span>)
</span></span><span style=display:flex><span>print(_map[<span style=color:#e6db74>&#39;c&#39;</span>])
</span></span><span style=display:flex><span>_map[<span style=color:#e6db74>&#39;d&#39;</span>] <span style=color:#f92672>=</span> <span style=color:#e6db74>&#34;&#34;</span>
</span></span></code></pre></div><h4 id=ordereddict>ordereddict</h4><h4 id=counter>Counter</h4><p>Counter allows for counting any hashable object(What is a hashable object? Lets not discuss it to much but if you stay with native types you are good. If not check out <strong>hash</strong>). Say we want to count the distinct values in a array and the the three most common ones:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span><span style=color:#f92672>from</span> collections <span style=color:#f92672>import</span> Counter
</span></span><span style=display:flex><span>a <span style=color:#f92672>=</span> [<span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>2</span>, <span style=color:#ae81ff>3</span>, <span style=color:#ae81ff>4</span>, <span style=color:#ae81ff>11</span>, <span style=color:#ae81ff>13</span>, <span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>2</span>]
</span></span><span style=display:flex><span>counter <span style=color:#f92672>=</span> Counter(a)
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>most_common <span style=color:#f92672>=</span> counter<span style=color:#f92672>.</span>most_common(<span style=color:#ae81ff>2</span>)
</span></span><span style=display:flex><span>print(most_common) <span style=color:#75715e># [(9, 6), (10, 3)]</span>
</span></span><span style=display:flex><span>print(most_common[<span style=color:#ae81ff>0</span>]) <span style=color:#75715e># (9, 6)</span>
</span></span><span style=display:flex><span>print(most_common[<span style=color:#ae81ff>0</span>][<span style=color:#ae81ff>0</span>]) <span style=color:#75715e># 9</span>
</span></span></code></pre></div><p>It can also be used to check anagrams:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style=display:flex><span><span style=color:#f92672>from</span> collections <span style=color:#f92672>import</span> Counter
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#66d9ef>def</span> <span style=color:#a6e22e>is_anagram</span>(str1, str2):
</span></span><span style=display:flex><span>    <span style=color:#66d9ef>return</span> Counter(str1) <span style=color:#f92672>==</span> Counter(str2)
</span></span><span style=display:flex><span>print(is_anagram(<span style=color:#960050;background-color:#1e0010>‘</span>taste<span style=color:#960050;background-color:#1e0010>’</span>, <span style=color:#960050;background-color:#1e0010>‘</span>state))
</span></span><span style=display:flex><span>print(is_anagram(<span style=color:#960050;background-color:#1e0010>‘</span>beach<span style=color:#960050;background-color:#1e0010>’</span>, <span style=color:#960050;background-color:#1e0010>‘</span>peach<span style=color:#960050;background-color:#1e0010>’</span>))
</span></span></code></pre></div><h4 id=deque>deque</h4><h2 id=the-zen-of-python>The Zen of Python</h2><p><a href=https://peps.python.org/pep-0020/>Link</a></p></section><div class=post-tags></div></article></main><footer><div style=display:flex></div><div class=footer-info>2026 <a href=https://github.com/athul/archie>Archie Theme</a> | Built with <a href=https://gohugo.io>Hugo</a></div></footer></div></body></html>