{"id":24991,"date":"2020-01-09T12:15:08","date_gmt":"2020-01-09T10:15:08","guid":{"rendered":"https:\/\/www.webcodegeeks.com\/?p=24991"},"modified":"2020-06-23T15:00:00","modified_gmt":"2020-06-23T12:00:00","slug":"71-python-code-snippets-for-everyday-problems","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/python\/71-python-code-snippets-for-everyday-problems\/","title":{"rendered":"71 Python Code Snippets for Everyday Problems"},"content":{"rendered":"\n<p>If you\u2019ve been following me for any amount of time, you know that I regularly publish <a href=\"https:\/\/therenegadecoder.com\/series\/how-to-python\/\">Python code snippets for everyday problems<\/a>. Well, I figured I\u2019d finally aggregate all those responses in one massive article with links to all those resources.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Everyday Problems<\/h2>\n\n\n\n<p>In this section, we\u2019ll take a look at various common scenarios that arise and how to solve them with Python code. Specifically, I\u2019ll share a brief explanation of the problem with a list of Python code solutions. Then, I\u2019ll link all the resources I have.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Inverting a Dictionary<\/h3>\n\n\n\n<p>Sometimes when we have a dictionary, we want to be able to flip its keys and values. Of course, there are concerns like \u201chow do we deal with duplicate values?\u201d and \u201cwhat if the values aren\u2019t hashable?\u201d That said, in the simple case, there are a few solutions:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_538565\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\"># Use to invert dictionaries that have unique values<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">my_inverted_dict = dict(map(reversed, my_dict.items()))<\/code><\/div>\n<div class=\"line number3 index2 alt2\">&nbsp;<\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\"># Use to invert dictionaries that have unique values<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">my_inverted_dict = {value: key <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">key, value in my_dict.items()}<\/code><\/div>\n<div class=\"line number6 index5 alt1\">&nbsp;<\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\"># Use to invert dictionaries that have non-unique values<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java plain\">from collections <\/code><code class=\"java keyword\">import<\/code> <code class=\"java plain\">defaultdict<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java plain\">my_inverted_dict = defaultdict(list)<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java plain\">{my_inverted_dict[v].append(k) <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">k, v in my_dict.items()}<\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java plain\"># Use to invert dictionaries that have non-unique values<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java plain\">my_inverted_dict = dict()<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java keyword\">for<\/code> <code class=\"java plain\">key, value in my_dict.items():<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">my_inverted_dict.setdefault(value, list()).append(key)<\/code><\/div>\n<div class=\"line number16 index15 alt1\">&nbsp;<\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java plain\"># Use to invert dictionaries that have lists of values<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"java plain\">my_dict = {value: key <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">key in my_inverted_dict <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">value in my_map[key]}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>For more explanation, check out my article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-invert-a-dictionary-in-python\/\">How to Invert a Dictionary in Python<\/a>.\u201d It includes a breakdown of each solution, their performance metrics, and when they\u2019re applicable. Likewise, <a href=\"https:\/\/youtu.be\/lN5qX73H2Bc\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"I have a YouTube video (opens in a new tab)\">I have a YouTube video<\/a> which covers the same topic.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Summing Elements of Two Lists<\/h3>\n\n\n\n<p>Let\u2019s say you have two lists, and you want to merge them together into a single list by element. In other words, you want to add the first element of the first list to the first element of the second list and store the result in a new list. Well, there are several ways to do that:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_994642\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">ethernet_devices = [<\/code><code class=\"java value\">1<\/code><code class=\"java plain\">, [<\/code><code class=\"java value\">7<\/code><code class=\"java plain\">], [<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">], [<\/code><code class=\"java value\">8374163<\/code><code class=\"java plain\">], [<\/code><code class=\"java value\">84302738<\/code><code class=\"java plain\">]]<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">usb_devices = [<\/code><code class=\"java value\">1<\/code><code class=\"java plain\">, [<\/code><code class=\"java value\">7<\/code><code class=\"java plain\">], [<\/code><code class=\"java value\">1<\/code><code class=\"java plain\">], [<\/code><code class=\"java value\">2314567<\/code><code class=\"java plain\">], [<\/code><code class=\"java value\">0<\/code><code class=\"java plain\">]]<\/code><\/div>\n<div class=\"line number3 index2 alt2\">&nbsp;<\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\"># The <\/code><code class=\"java keyword\">long<\/code> <code class=\"java plain\">way<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">all_devices = [<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">ethernet_devices[<\/code><code class=\"java value\">0<\/code><code class=\"java plain\">] + usb_devices[<\/code><code class=\"java value\">0<\/code><code class=\"java plain\">],<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">ethernet_devices[<\/code><code class=\"java value\">1<\/code><code class=\"java plain\">] + usb_devices[<\/code><code class=\"java value\">1<\/code><code class=\"java plain\">],<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">ethernet_devices[<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">] + usb_devices[<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">],<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">ethernet_devices[<\/code><code class=\"java value\">3<\/code><code class=\"java plain\">] + usb_devices[<\/code><code class=\"java value\">3<\/code><code class=\"java plain\">],<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">ethernet_devices[<\/code><code class=\"java value\">4<\/code><code class=\"java plain\">] + usb_devices[<\/code><code class=\"java value\">4<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number12 index11 alt1\">&nbsp;<\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java plain\"># Some comprehension magic<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java plain\">all_devices = [x + y <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">x, y in zip(ethernet_devices, usb_devices)]<\/code><\/div>\n<div class=\"line number15 index14 alt2\">&nbsp;<\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java plain\"># Let's use maps<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">operator <\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"java plain\">all_devices = list(map(operator.add, ethernet_devices, usb_devices))<\/code><\/div>\n<div class=\"line number19 index18 alt2\">&nbsp;<\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"java plain\"># We can't forget our favorite computation library<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">numpy as np <\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"java plain\">all_devices = np.add(ethernet_devices, usb_devices)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>If you\u2019d like a deeper explanation, check out my article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-sum-elements-of-two-lists-in-python\/\">How to Sum Elements of Two Lists in Python<\/a>\u201d which even includes a fun challenge. Likewise, you might get some value out of <a href=\"https:\/\/youtu.be\/-ueWDzP88eQ\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"my YouTube video on the same topic (opens in a new tab)\">my YouTube video on the same topic<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Checking if a File Exists<\/h3>\n\n\n\n<p>One of the amazing perks of Python is how easy it is to manage files. Unlike Java, Python has a built-in syntax for file reading and writing. As a result, checking if a file exists is a rather brief task:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_820873\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\"># Brute force with a <\/code><code class=\"java keyword\">try<\/code><code class=\"java plain\">-except block (Python <\/code><code class=\"java value\">3<\/code><code class=\"java plain\">+)<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java keyword\">try<\/code><code class=\"java plain\">: <\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">with open(<\/code><code class=\"java string\">'\/path\/to\/file'<\/code><code class=\"java plain\">, <\/code><code class=\"java string\">'r'<\/code><code class=\"java plain\">) as fh:<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">pass<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">except FileNotFoundError: <\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">pass<\/code><\/div>\n<div class=\"line number7 index6 alt2\">&nbsp;<\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java plain\"># Leverage the OS <\/code><code class=\"java keyword\">package<\/code> <code class=\"java plain\">(possible race condition)<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">os <\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java plain\">exists = os.path.isfile(<\/code><code class=\"java string\">'\/path\/to\/file'<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java plain\"># Wrap the path in an object <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">enhanced functionality<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java plain\">from pathlib <\/code><code class=\"java keyword\">import<\/code> <code class=\"java plain\">Path<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java plain\">config = Path(<\/code><code class=\"java string\">'\/path\/to\/file'<\/code><code class=\"java plain\">) <\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java keyword\">if<\/code> <code class=\"java plain\">config.is_file(): <\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">pass<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>As always, you can learn more about these solutions in my article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-check-if-a-file-exists-in-python\/\">How to Check if a File Exists in Python<\/a>\u201d which features three solutions and performances metrics.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Converting Two Lists Into a Dictionary<\/h3>\n\n\n\n<p>Previously, we talked about summing two lists in Python. As it turns out, there\u2019s a lot we can do with two lists. For example, we could try mapping one onto the other to create a dictionary.<\/p>\n\n\n\n<p>As with many of these problems, there are a few concerns. For instance, what if the two lists aren\u2019t the same size? Likewise, what if the keys aren\u2019t unique or hashable? That said, in the simple case, there are some straightforward solutions:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_849408\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">column_names = [<\/code><code class=\"java string\">'id'<\/code><code class=\"java plain\">, <\/code><code class=\"java string\">'color'<\/code><code class=\"java plain\">, <\/code><code class=\"java string\">'style'<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">column_values = [<\/code><code class=\"java value\">1<\/code><code class=\"java plain\">, <\/code><code class=\"java string\">'red'<\/code><code class=\"java plain\">, <\/code><code class=\"java string\">'bold'<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number3 index2 alt2\">&nbsp;<\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\"># Convert two lists into a dictionary with zip and the dict constructor<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">name_to_value_dict = dict(zip(column_names, column_values))<\/code><\/div>\n<div class=\"line number6 index5 alt1\">&nbsp;<\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\"># Convert two lists into a dictionary with a dictionary comprehension<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java plain\">name_to_value_dict = {key:value <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">key, value in zip(column_names, column_values)}<\/code><\/div>\n<div class=\"line number9 index8 alt2\">&nbsp;<\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java plain\"># Convert two lists into a dictionary with a loop<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java plain\">name_value_tuples = zip(column_names, column_values) <\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java plain\">name_to_value_dict = {} <\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java keyword\">for<\/code> <code class=\"java plain\">key, value in name_value_tuples: <\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">key in name_to_value_dict: <\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">pass # Insert logic <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">handling duplicate keys <\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">else<\/code><code class=\"java plain\">: <\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">name_to_value_dict[key] = value<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Once again, you can find an explanation for each of these solutions and more in my article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-convert-two-lists-into-a-dictionary-in-python\/\">How to Convert Two Lists Into a Dictionary in Python<\/a>.\u201d If you are a visual person, you might prefer <a href=\"https:\/\/youtu.be\/SPmFkdfD_Ho\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"my YouTube video which covers mapping lists to dictionaries (opens in a new tab)\">my YouTube video which covers mapping lists to dictionaries<\/a> as well.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Checking if a List Is Empty<\/h3>\n\n\n\n<p>If you come from a statically typed language like Java or C, you might be bothered by the lack of static types in Python. Sure, not knowing the type of a variable can sometimes be frustrating, but there are perks as well. For instance, we can check if a list is empty by its type flexibility\u2014among other methods:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_207179\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">my_list = list()<\/code><\/div>\n<div class=\"line number2 index1 alt1\">&nbsp;<\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\"># Check <\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">a list is empty by its length<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java keyword\">if<\/code> <code class=\"java plain\">len(my_list) == <\/code><code class=\"java value\">0<\/code><code class=\"java plain\">:<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">pass&nbsp; # the list is empty<\/code><\/div>\n<div class=\"line number6 index5 alt1\">&nbsp;<\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\"># Check <\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">a list is empty by direct comparison (only works <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">lists)<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java keyword\">if<\/code> <code class=\"java plain\">my_list == []:<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">pass&nbsp; # the list is empty<\/code><\/div>\n<div class=\"line number10 index9 alt1\">&nbsp;<\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java plain\"># Check <\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">a list is empty by its type flexibility **preferred method**<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java keyword\">if<\/code> <code class=\"java plain\">not my_list:<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">pass&nbsp; # the list is empty<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>If you\u2019d like to learn more about these three solutions, check out my article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-check-if-a-list-is-empty-in-python\/\">How to Check if a List in Empty in Python<\/a>.\u201d If you\u2019re in a pinch, check out <a href=\"https:\/\/youtu.be\/k1lE5QxNAM4\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"my YouTube video which covers the same topic (opens in a new tab)\">my YouTube video which covers the same topic<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cloning a List<\/h3>\n\n\n\n<p>One of my favorite subjects in programming is copying data types. After all, it\u2019s never easy in this reference-based world we live, and that\u2019s true for Python as well. Luckily, if we want to copy a list, there are a few ways to do it:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_628093\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">my_list = [<\/code><code class=\"java value\">27<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">13<\/code><code class=\"java plain\">, -<\/code><code class=\"java value\">11<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">60<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">39<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">15<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number2 index1 alt1\">&nbsp;<\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\"># Clone a list by brute force<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\">my_duplicate_list = [item <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">item in my_list]<\/code><\/div>\n<div class=\"line number5 index4 alt2\">&nbsp;<\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java plain\"># Clone a list with a slice<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\">my_duplicate_list = my_list[:]<\/code><\/div>\n<div class=\"line number8 index7 alt1\">&nbsp;<\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java plain\"># Clone a list with the list constructor<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java plain\">my_duplicate_list = list(my_list) <\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java plain\"># Clone a list with the copy function (Python <\/code><code class=\"java value\">3.3<\/code><code class=\"java plain\">+)<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java plain\">my_duplicate_list = my_list.copy()&nbsp; # preferred method<\/code><\/div>\n<div class=\"line number14 index13 alt1\">&nbsp;<\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java plain\"># Clone a list with the copy <\/code><code class=\"java keyword\">package<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">copy<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java plain\">my_duplicate_list = copy.copy(my_list)<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"java plain\">my_deep_duplicate_list = copy.deepcopy(my_list)<\/code><\/div>\n<div class=\"line number19 index18 alt2\">&nbsp;<\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"java plain\"># Clone a list with multiplication?<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"java plain\">my_duplicate_list = my_list * <\/code><code class=\"java value\">1<\/code>&nbsp; <code class=\"java plain\"># <\/code><code class=\"java keyword\">do<\/code> <code class=\"java plain\">not <\/code><code class=\"java keyword\">do<\/code> <code class=\"java keyword\">this<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>When it comes to cloning, it\u2019s important to be aware of the difference between shallow and deep copies. Luckily, <a href=\"https:\/\/therenegadecoder.com\/code\/be-careful-when-copying-mutable-data-types\/\">I have an article covering that topic<\/a>.<\/p>\n\n\n\n<p>Finally, you can find out more about the solutions listed above in my article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-clone-a-list-in-python\/\">How to Clone a List in Python<\/a>.\u201d In addition, you might find value in my related YouTube video titled \u201c<a href=\"https:\/\/youtu.be\/ZMCte_LHml0\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"7 Ways to Copy a List in Python Featuring The Pittsburgh Penguins (opens in a new tab)\">7 Ways to Copy a List in Python Featuring The Pittsburgh Penguins<\/a>.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Retrieving the Last Item of a List<\/h3>\n\n\n\n<p>Since we\u2019re on the topic of lists, lets talk about getting the last item of a list. In most languages, this involves some convoluted mathematical expression involving the length of the list. What if I told you there is are several more interesting solutions in Python?<\/p>\n\n\n\n<div>\n<div id=\"highlighter_986369\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">my_list = [<\/code><code class=\"java string\">'red'<\/code><code class=\"java plain\">, <\/code><code class=\"java string\">'blue'<\/code><code class=\"java plain\">, <\/code><code class=\"java string\">'green'<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number2 index1 alt1\">&nbsp;<\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\"># Get the last item with brute force using len<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\">last_item = my_list[len(my_list) - <\/code><code class=\"java value\">1<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number5 index4 alt2\">&nbsp;<\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java plain\"># Remove the last item from the list using pop<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\">last_item = my_list.pop() <\/code><\/div>\n<div class=\"line number8 index7 alt1\">&nbsp;<\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java plain\"># Get the last item using negative indices *preferred &amp; quickest method*<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java plain\">last_item = my_list[-<\/code><code class=\"java value\">1<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java plain\"># Get the last item using iterable unpacking<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java plain\">*_, last_item = my_list<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>As always, you can learn more about these solutions from my article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-get-the-last-item-of-a-list-in-python\/\">How to Get the Last Item of a List in Python<\/a>\u201d which features a challenge, performance metrics, and <a href=\"https:\/\/youtu.be\/wAJ1Nlk-T7w\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">a YouTube video<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Making a Python Script Shortcut<\/h3>\n\n\n\n<p>Sometimes when you create a script, you want to be able to run it conveniently at the click of a button. Fortunately, there are several ways to do that.<\/p>\n\n\n\n<p>First, we can create a Windows shortcut with the following settings:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_759586\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">\\path\\to\\trc-image-titler.py -o \\path\\to\\output<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Likewise, we can also create a batch file with the following code:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_700268\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java color1\">@echo<\/code> <code class=\"java plain\">off<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">\\path\\to\\trc-image-titler.py -o \\path\\to\\output<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Finally, we can create a bash script with the following code:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_335394\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">#!\/bin\/sh<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">python \/path\/to\/trc-image-titler.py -o \/path\/to\/output<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>If you\u2019re looking for more explanation, check out the article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-make-a-python-script-shortcut-with-arguments\/\">How to Make a Python Script Shortcut with Arguments<\/a>.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sorting a List of Strings<\/h3>\n\n\n\n<p>Sorting is a common task that you\u2019re expected to know how to implement in Computer Science. Despite the intense focus on sorting algorithms in most curriculum, no one really tells you how complicated sorting can actually get. For instance, sorting numbers is straightforward, but what about sorting strings? How do we decide a proper ordering? Fortunately, there are a lot of options in Python:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_7632\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">my_list = [<\/code><code class=\"java string\">\"leaf\"<\/code><code class=\"java plain\">, <\/code><code class=\"java string\">\"cherry\"<\/code><code class=\"java plain\">, <\/code><code class=\"java string\">\"fish\"<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number2 index1 alt1\">&nbsp;<\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\"># Brute force method using bubble sort<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\">my_list = [<\/code><code class=\"java string\">\"leaf\"<\/code><code class=\"java plain\">, <\/code><code class=\"java string\">\"cherry\"<\/code><code class=\"java plain\">, <\/code><code class=\"java string\">\"fish\"<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">size = len(my_list)<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java keyword\">for<\/code> <code class=\"java plain\">i in range(size):<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">j in range(size):<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">my_list[i] &lt; my_list[j]:<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">temp = my_list[i]<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">my_list[i] = my_list[j]<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">my_list[j] = temp<\/code><\/div>\n<div class=\"line number12 index11 alt1\">&nbsp;<\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java plain\"># Generic list sort *fastest*<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java plain\">my_list.sort()<\/code><\/div>\n<div class=\"line number15 index14 alt2\">&nbsp;<\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java plain\"># Casefold list sort<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java plain\">my_list.sort(key=str.casefold)<\/code><\/div>\n<div class=\"line number18 index17 alt1\">&nbsp;<\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"java plain\"># Generic list sorted<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"java plain\">my_list = sorted(my_list) <\/code><\/div>\n<div class=\"line number21 index20 alt2\">&nbsp;<\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"java plain\"># Custom list sort using casefold (&gt;= Python <\/code><code class=\"java value\">3.3<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"java plain\">my_list = sorted(my_list, key=str.casefold) <\/code><\/div>\n<div class=\"line number24 index23 alt1\">&nbsp;<\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"java plain\"># Custom list sort using current locale <\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">locale<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"java plain\">from functools <\/code><code class=\"java keyword\">import<\/code> <code class=\"java plain\">cmp_to_key<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"java plain\">my_list = sorted(my_list, key=cmp_to_key(locale.strcoll)) <\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"java spaces\">&nbsp;<\/code>&nbsp;<\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"java plain\"># Custom reverse list sort using casefold (&gt;= Python <\/code><code class=\"java value\">3.3<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"java plain\">my_list = sorted(my_list, key=str.casefold, reverse=True)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>If you\u2019re curious about how some of these solutions work, or you just want to know what some of the potential risks are, check out my article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-sort-a-list-of-strings-in-python\/\">How to Sort a List of Strings in Python<\/a>.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Parsing a Spreadsheet<\/h3>\n\n\n\n<p>One of the more interesting use cases for Python is data science. Unfortunately, however, that means handling a lot of raw data in various formats like text files and spreadsheets. Luckily, Python has plenty of built-in utilities for reading different file formats. For example, we can parse a spreadsheet with ease:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_903474\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\"># Brute force solution<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">csv_mapping_list = []<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\">with open(<\/code><code class=\"java string\">\"\/path\/to\/data.csv\"<\/code><code class=\"java plain\">) as my_data:<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">line_count = <\/code><code class=\"java value\">0<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">line in my_data:<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">row_list = [val.strip() <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">val in line.split(<\/code><code class=\"java string\">\",\"<\/code><code class=\"java plain\">)]<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">line_count == <\/code><code class=\"java value\">0<\/code><code class=\"java plain\">:<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">header = row_list<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">else<\/code><code class=\"java plain\">:<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">row_dict = {key: value <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">key, value in zip(header, row_list)}<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">csv_mapping_list.append(row_dict)<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">line_count += <\/code><code class=\"java value\">1<\/code><\/div>\n<div class=\"line number13 index12 alt2\">&nbsp;<\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java plain\"># CSV reader solution<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">csv<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java plain\">csv_mapping_list = []<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java plain\">with open(<\/code><code class=\"java string\">\"\/path\/to\/data.csv\"<\/code><code class=\"java plain\">) as my_data:<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">csv_reader = csv.reader(my_data, delimiter=<\/code><code class=\"java string\">\",\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">line_count = <\/code><code class=\"java value\">0<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">line in csv_reader:<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">line_count == <\/code><code class=\"java value\">0<\/code><code class=\"java plain\">:<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">header = line<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">else<\/code><code class=\"java plain\">:<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">row_dict = {key: value <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">key, value in zip(header, line)}<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">csv_mapping_list.append(row_dict)<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">line_count += <\/code><code class=\"java value\">1<\/code><\/div>\n<div class=\"line number27 index26 alt2\">&nbsp;<\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"java plain\"># CSV DictReader solution<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">csv<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"java plain\">with open(<\/code><code class=\"java string\">\"\/path\/to\/dict.csv\"<\/code><code class=\"java plain\">) as my_data:<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">csv_mapping_list = list(csv.DictReader(my_data))<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>In this case, we try to get our output in a list of dictionaries. If you want to know more about how this works, check out the complete article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-parse-a-spreadsheet-in-python\/\">How to Parse a Spreadsheet in Python<\/a>.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sorting a List of Dictionaries<\/h3>\n\n\n\n<p>Once you have a list of dictionaries, you might want to organize them in some specific order. For example, if the dictionaries have a key for date, we can try sorting them in chronological order. Luckily, sorting is another relatively painless task:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_820560\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">csv_mapping_list = [<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">{<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java string\">\"Name\"<\/code><code class=\"java plain\">: <\/code><code class=\"java string\">\"Jeremy\"<\/code><code class=\"java plain\">,<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java string\">\"Age\"<\/code><code class=\"java plain\">: <\/code><code class=\"java value\">25<\/code><code class=\"java plain\">,<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java string\">\"Favorite Color\"<\/code><code class=\"java plain\">: <\/code><code class=\"java string\">\"Blue\"<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">},<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">{<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java string\">\"Name\"<\/code><code class=\"java plain\">: <\/code><code class=\"java string\">\"Ally\"<\/code><code class=\"java plain\">,<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java string\">\"Age\"<\/code><code class=\"java plain\">: <\/code><code class=\"java value\">41<\/code><code class=\"java plain\">,<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java string\">\"Favorite Color\"<\/code><code class=\"java plain\">: <\/code><code class=\"java string\">\"Magenta\"<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">},<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">{<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java string\">\"Name\"<\/code><code class=\"java plain\">: <\/code><code class=\"java string\">\"Jasmine\"<\/code><code class=\"java plain\">,<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java string\">\"Age\"<\/code><code class=\"java plain\">: <\/code><code class=\"java value\">29<\/code><code class=\"java plain\">,<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java string\">\"Favorite Color\"<\/code><code class=\"java plain\">: <\/code><code class=\"java string\">\"Aqua\"<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number18 index17 alt1\">&nbsp;<\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"java plain\"># Custom sorting<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"java plain\">size = len(csv_mapping_list)<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"java keyword\">for<\/code> <code class=\"java plain\">i in range(size):<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">min_index = i<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">j in range(i + <\/code><code class=\"java value\">1<\/code><code class=\"java plain\">, size):<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">csv_mapping_list[min_index][<\/code><code class=\"java string\">\"Age\"<\/code><code class=\"java plain\">] &gt; csv_mapping_list[j][<\/code><code class=\"java string\">\"Age\"<\/code><code class=\"java plain\">]:<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">min_index = j<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">csv_mapping_list[i], csv_mapping_list[min_index] = csv_mapping_list[min_index], csv_mapping_list[i]<\/code><\/div>\n<div class=\"line number27 index26 alt2\">&nbsp;<\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"java plain\"># List sorting function<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"java plain\">csv_mapping_list.sort(key=lambda item: item.get(<\/code><code class=\"java string\">\"Age\"<\/code><code class=\"java plain\">))<\/code><\/div>\n<div class=\"line number30 index29 alt1\">&nbsp;<\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"java plain\"># List sorting using itemgetter<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"java plain\">from operator <\/code><code class=\"java keyword\">import<\/code> <code class=\"java plain\">itemgetter<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"java plain\">f = itemgetter(<\/code><code class=\"java string\">'Name'<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"java plain\">csv_mapping_list.sort(key=f)<\/code><\/div>\n<div class=\"line number35 index34 alt2\">&nbsp;<\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"java plain\"># Iterable sorted function<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"java plain\">csv_mapping_list = sorted(csv_mapping_list, key=lambda item: item(<\/code><code class=\"java string\">\"Age\"<\/code><code class=\"java plain\">))<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>All these solutions and more outlined in my article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-sort-a-list-of-dictionaries-in-python\/\">How to Sort a List of Dictionaries in Python<\/a>.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Writing a List Comprehension<\/h3>\n\n\n\n<p>One of my favorite Python topics to chat about is list comprehensions. As someone who grew up on languages like Java, C\/C++, and C#, I had never seen anything quite like a list comprehension until I played with Python. Now, I\u2019m positively obsessed with them. As a result, I put together an entire list of examples:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_817056\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\"># Define a generic 1D list of constants<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">my_list = [<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">5<\/code><code class=\"java plain\">, -<\/code><code class=\"java value\">4<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">6<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number3 index2 alt2\">&nbsp;<\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\"># Duplicate a 1D list of constants<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">[item <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">item in my_list]<\/code><\/div>\n<div class=\"line number6 index5 alt1\">&nbsp;<\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\"># Duplicate and scale a 1D list of constants<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java plain\">[<\/code><code class=\"java value\">2<\/code> <code class=\"java plain\">* item <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">item in my_list]<\/code><\/div>\n<div class=\"line number9 index8 alt2\">&nbsp;<\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java plain\"># Duplicate and filter out non-negatives from 1D list of constants<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java plain\">[item <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">item in my_list <\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">item &lt; <\/code><code class=\"java value\">0<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number12 index11 alt1\">&nbsp;<\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java plain\"># Duplicate, filter, and scale a 1D list of constants<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java plain\">[<\/code><code class=\"java value\">2<\/code> <code class=\"java plain\">* item <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">item in my_list <\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">item &lt; <\/code><code class=\"java value\">0<\/code><code class=\"java plain\">]<\/code><\/div>\n<div class=\"line number15 index14 alt2\">&nbsp;<\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java plain\"># Generate all possible pairs from two lists<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java plain\">[(a, b) <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">a in (<\/code><code class=\"java value\">1<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">3<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">5<\/code><code class=\"java plain\">) <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">b in (<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">4<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">6<\/code><code class=\"java plain\">)]<\/code><\/div>\n<div class=\"line number18 index17 alt1\">&nbsp;<\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"java plain\"># Redefine list of contents to be 2D<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"java plain\">my_list = [[<\/code><code class=\"java value\">1<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">2<\/code><code class=\"java plain\">], [<\/code><code class=\"java value\">3<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">4<\/code><code class=\"java plain\">]]<\/code><\/div>\n<div class=\"line number21 index20 alt2\">&nbsp;<\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"java plain\"># Duplicate a 2D list<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"java plain\">[[item <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">item in sub_list] <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">sub_list in my_list]<\/code><\/div>\n<div class=\"line number24 index23 alt1\">&nbsp;<\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"java plain\"># Duplicate an n-dimensional list<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"java plain\">def deep_copy(to_copy):<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">type(to_copy) is list:<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">[deep_copy(item) <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">item in to_copy]<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">else<\/code><code class=\"java plain\">:<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">to_copy<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>As always, you can find a more formal explanation of all this code in my article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-write-a-list-comprehension-in-python\/\">How to Write a List Comprehension in Python<\/a>.\u201d As an added bonus, I have <a href=\"https:\/\/youtu.be\/AEG8D4h7kls\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"a YouTube video which shares several examples of list comprehensions (opens in a new tab)\">a YouTube video which shares several examples of list comprehensions<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Merging Two Dictionaries<\/h3>\n\n\n\n<p>In this collection, we talk a lot about handling data structures like lists and dictionaries. Well, this one is no different. In particular, we\u2019re looking at merging two dictionaries. Of course, combining two dictionaries comes with risks. For example, what if there are duplicate keys? Luckily, we have solutions for that:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_325381\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">yusuke_power = {<\/code><code class=\"java string\">\"Yusuke Urameshi\"<\/code><code class=\"java plain\">: <\/code><code class=\"java string\">\"Spirit Gun\"<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">hiei_power = {<\/code><code class=\"java string\">\"Hiei\"<\/code><code class=\"java plain\">: <\/code><code class=\"java string\">\"Jagan Eye\"<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\">powers = dict()<\/code><\/div>\n<div class=\"line number4 index3 alt1\">&nbsp;<\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\"># Brute force<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java keyword\">for<\/code> <code class=\"java plain\">dictionary in (yusuke_power, hiei_power):<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">key, value in dictionary.items():<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">powers[key] = value<\/code><\/div>\n<div class=\"line number9 index8 alt2\">&nbsp;<\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java plain\"># Dictionary Comprehension<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java plain\">powers = {key: value <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">d in (yusuke_power, hiei_power) <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">key, value in d.items()}<\/code><\/div>\n<div class=\"line number12 index11 alt1\">&nbsp;<\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java plain\"># Copy and update<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java plain\">powers = yusuke_power.copy()<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java plain\">powers.update(hiei_power)<\/code><\/div>\n<div class=\"line number16 index15 alt1\">&nbsp;<\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java plain\"># Dictionary unpacking (Python <\/code><code class=\"java value\">3.5<\/code><code class=\"java plain\">+)<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"java plain\">powers = {**yusuke_power, **hiei_power}<\/code><\/div>\n<div class=\"line number19 index18 alt2\">&nbsp;<\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"java plain\"># Backwards compatible function <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">any number of dicts<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"java plain\">def merge_dicts(*dicts: dict):<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">merged_dict = dict()<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">dictionary in dicts:<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">merge_dict.update(dictionary)<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">merged_dict<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>If you\u2019re interested, I have an article which covers this exact topic called \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-merge-two-dictionaries-in-python\/\">How to Merge Two Dictionaries in Python<\/a>\u201d which features four solutions as well performance metrics.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Formatting a String<\/h3>\n\n\n\n<p>Whether we like to admit it or not, we often find ourselves burying print statements throughout our code for quick debugging purposes. After all, a well placed print statement can save you a lot of time. Unfortunately, it\u2019s not always easy or convenient to actually display what we want. Luckily, Python has a lot of formatting options:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_378442\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">name = Jeremy<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">age = <\/code><code class=\"java value\">25<\/code><\/div>\n<div class=\"line number3 index2 alt2\">&nbsp;<\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\"># String formatting using concatenation<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">print(<\/code><code class=\"java string\">\"My name is \"<\/code> <code class=\"java plain\">+ name + <\/code><code class=\"java string\">\", and I am \"<\/code> <code class=\"java plain\">+ str(age) + <\/code><code class=\"java string\">\" years old.\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number6 index5 alt1\">&nbsp;<\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\"># String formatting using multiple prints<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java plain\">print(<\/code><code class=\"java string\">\"My name is \"<\/code><code class=\"java plain\">, end=<\/code><code class=\"java string\">\"\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java plain\">print(name, end=<\/code><code class=\"java string\">\"\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java plain\">print(<\/code><code class=\"java string\">\", and I am \"<\/code><code class=\"java plain\">, end=<\/code><code class=\"java string\">\"\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java plain\">print(age, end=<\/code><code class=\"java string\">\"\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java plain\">print(<\/code><code class=\"java string\">\" years old.\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number13 index12 alt2\">&nbsp;<\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java plain\"># String formatting using join<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java plain\">print(<\/code><code class=\"java string\">''<\/code><code class=\"java plain\">.join([<\/code><code class=\"java string\">\"My name is \"<\/code><code class=\"java plain\">, name, <\/code><code class=\"java string\">\", and I am \"<\/code><code class=\"java plain\">, str(age), <\/code><code class=\"java string\">\" years old\"<\/code><code class=\"java plain\">]))<\/code><\/div>\n<div class=\"line number16 index15 alt1\">&nbsp;<\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java plain\"># String formatting using modulus operator<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"java plain\">print(<\/code><code class=\"java string\">\"My name is %s, and I am %d years old.\"<\/code> <code class=\"java plain\">% (name, age))<\/code><\/div>\n<div class=\"line number19 index18 alt2\">&nbsp;<\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"java plain\"># String formatting using format function with ordered parameters<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"java plain\">print(<\/code><code class=\"java string\">\"My name is {}, and I am {} years old\"<\/code><code class=\"java plain\">.format(name, age))<\/code><\/div>\n<div class=\"line number22 index21 alt1\">&nbsp;<\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"java plain\"># String formatting using format function with named parameters<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"java plain\">print(<\/code><code class=\"java string\">\"My name is {n}, and I am {a} years old\"<\/code><code class=\"java plain\">.format(a=age, n=name))<\/code><\/div>\n<div class=\"line number25 index24 alt2\">&nbsp;<\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"java plain\"># String formatting using f-Strings (Python <\/code><code class=\"java value\">3.6<\/code><code class=\"java plain\">+)<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"java plain\">print(f<\/code><code class=\"java string\">\"My name is {name}, and I am {age} years old\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Keep in mind that these solutions don\u2019t have to be used with print statements. In other words, feel free to use solutions like f-strings wherever you need them.<\/p>\n\n\n\n<p>As always, you can find an explanation of all these solutions and more in my article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-format-a-string-in-python\/\">How to Format a String in Python<\/a>.\u201d If you\u2019d rather see these snippets in action, check out my YouTube video titled \u201c<a href=\"https:\/\/youtu.be\/qZMYur8VRlU\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"6 Ways to Format a String in Python Featuring My Cat (opens in a new tab)\">6 Ways to Format a String in Python Featuring My Cat<\/a>.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Printing on the Same Line<\/h3>\n\n\n\n<p>Along a similar line as formatting strings, sometimes you just need to print on the same line in Python. As the <code>print<\/code> command is currently designed, it automatically applies a newline to the end of your string. Luckily, there are a few ways around that:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_419278\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\"># Python <\/code><code class=\"java value\">2<\/code> <code class=\"java plain\">only<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">print <\/code><code class=\"java string\">\"Live PD\"<\/code><code class=\"java plain\">,<\/code><\/div>\n<div class=\"line number3 index2 alt2\">&nbsp;<\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\"># Backwards compatible (also fastest)<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">sys<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java plain\">sys.stdout.write(<\/code><code class=\"java string\">\"Breaking Bad\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number7 index6 alt2\">&nbsp;<\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java plain\"># Python <\/code><code class=\"java value\">3<\/code> <code class=\"java plain\">only<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java plain\">print(<\/code><code class=\"java string\">\"Mob Psycho 100\"<\/code><code class=\"java plain\">, end=<\/code><code class=\"java string\">\"\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>As always, if you plan to use any of these solutions, check out the article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-print-on-the-same-line-in-python\/\">How to Print on the Same Line in Python<\/a>\u201d for additional use cases and caveats.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testing Performance<\/h3>\n\n\n\n<p>Finally, sometimes you just want to compare a couple chunks of code. Luckily, Python has a few straightforward options:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_196886\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\"># Brute force solution<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">datetime<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\">start_time = datetime.datetime.now()<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\">[(a, b) <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">a in (<\/code><code class=\"java value\">1<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">3<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">5<\/code><code class=\"java plain\">) <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">b in (<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">4<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">6<\/code><code class=\"java plain\">)] # example snippet<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">end_time = datetime.datetime.now()<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java plain\">print end_time - start_time<\/code><\/div>\n<div class=\"line number7 index6 alt2\">&nbsp;<\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java plain\"># timeit solution<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">timeit<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java plain\">min(timeit.repeat(<\/code><code class=\"java string\">\"[(a, b) for a in (1, 3, 5) for b in (2, 4, 6)]\"<\/code><code class=\"java plain\">))<\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java plain\"># cProfile solution<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">cProfile<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java plain\">cProfile.run(<\/code><code class=\"java string\">\"[(a, b) for a in (1, 3, 5) for b in (2, 4, 6)]\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Again, if you want more details, check the article titled \u201c<a href=\"https:\/\/therenegadecoder.com\/code\/how-to-performance-test-python-code\/\">How to Performance Test Python Code<\/a>.\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Share Your Own Problems<\/h2>\n\n\n\n<p>As you can see, this article and its associated series is already quite large. That said, I\u2019d love to continue growing them. As a result, you should consider sharing some of your own problems. After all, there has be something you Google regularly. Why not share it with us?<\/p>\n\n\n\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Published on Web Code Geeks with permission by Jeremy Grifski, partner at our <a href=\"\/\/www.webcodegeeks.com\/join-us\/wcg\/\" target=\"_blank\" rel=\"noopener noreferrer\">WCG program<\/a>. See the original article here: <a href=\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/\" target=\"_blank\" rel=\"noopener noreferrer\">71 Python Code Snippets for Everyday Problems<\/a><\/p>\n<p>Opinions expressed by Web Code Geeks contributors are their own.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>If you\u2019ve been following me for any amount of time, you know that I regularly publish Python code snippets for everyday problems. Well, I figured I\u2019d finally aggregate all those responses in one massive article with links to all those resources. Everyday Problems In this section, we\u2019ll take a look at various common scenarios that &hellip;<\/p>\n","protected":false},"author":14722,"featured_media":1651,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53],"tags":[],"class_list":["post-24991","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>71 Python Code Snippets for Everyday Problems - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Interested to learn about Python Code Snippets? Check our article presenting various common scenarios that arise and how to solve them with Python code\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"71 Python Code Snippets for Everyday Problems - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about Python Code Snippets? Check our article presenting various common scenarios that arise and how to solve them with Python code\" \/>\n<meta property=\"og:url\" content=\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-09T10:15:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-23T12:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Grifski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@RenegadeCoder94\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Grifski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/71-python-code-snippets-for-everyday-problems\/\"},\"author\":{\"name\":\"Jeremy Grifski\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/7eaa8e89cf23a5de82a048beb4c59aa1\"},\"headline\":\"71 Python Code Snippets for Everyday Problems\",\"datePublished\":\"2020-01-09T10:15:08+00:00\",\"dateModified\":\"2020-06-23T12:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/71-python-code-snippets-for-everyday-problems\/\"},\"wordCount\":1774,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"articleSection\":[\"Python\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/71-python-code-snippets-for-everyday-problems\/\",\"url\":\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/\",\"name\":\"71 Python Code Snippets for Everyday Problems - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"datePublished\":\"2020-01-09T10:15:08+00:00\",\"dateModified\":\"2020-06-23T12:00:00+00:00\",\"description\":\"Interested to learn about Python Code Snippets? Check our article presenting various common scenarios that arise and how to solve them with Python code\",\"breadcrumb\":{\"@id\":\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/python\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"71 Python Code Snippets for Everyday Problems\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/7eaa8e89cf23a5de82a048beb4c59aa1\",\"name\":\"Jeremy Grifski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9d50311a27dff0a54d775b6106b8f804d5d11d0b5182ed537f325046a020c6f5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9d50311a27dff0a54d775b6106b8f804d5d11d0b5182ed537f325046a020c6f5?s=96&d=mm&r=g\",\"caption\":\"Jeremy Grifski\"},\"description\":\"Jeremy is the founder of The Renegade Coder, a software curriculum website launched in 2017. In addition, he is a PhD student with an interest in education and data visualization.\",\"sameAs\":[\"https:\/\/therenegadecoder.com\/\",\"https:\/\/www.linkedin.com\/in\/jeremy-grifski-22240552\/\",\"https:\/\/x.com\/RenegadeCoder94\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/jeremy-grifski\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"71 Python Code Snippets for Everyday Problems - Web Code Geeks - 2026","description":"Interested to learn about Python Code Snippets? Check our article presenting various common scenarios that arise and how to solve them with Python code","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/","og_locale":"en_US","og_type":"article","og_title":"71 Python Code Snippets for Everyday Problems - Web Code Geeks - 2026","og_description":"Interested to learn about Python Code Snippets? Check our article presenting various common scenarios that arise and how to solve them with Python code","og_url":"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2020-01-09T10:15:08+00:00","article_modified_time":"2020-06-23T12:00:00+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","type":"image\/jpeg"}],"author":"Jeremy Grifski","twitter_card":"summary_large_image","twitter_creator":"@RenegadeCoder94","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Jeremy Grifski","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/python\/71-python-code-snippets-for-everyday-problems\/"},"author":{"name":"Jeremy Grifski","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/7eaa8e89cf23a5de82a048beb4c59aa1"},"headline":"71 Python Code Snippets for Everyday Problems","datePublished":"2020-01-09T10:15:08+00:00","dateModified":"2020-06-23T12:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/python\/71-python-code-snippets-for-everyday-problems\/"},"wordCount":1774,"commentCount":3,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","articleSection":["Python"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/python\/71-python-code-snippets-for-everyday-problems\/","url":"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/","name":"71 Python Code Snippets for Everyday Problems - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#primaryimage"},"image":{"@id":"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","datePublished":"2020-01-09T10:15:08+00:00","dateModified":"2020-06-23T12:00:00+00:00","description":"Interested to learn about Python Code Snippets? Check our article presenting various common scenarios that arise and how to solve them with Python code","breadcrumb":{"@id":"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/therenegadecoder.com\/code\/python-code-snippets-for-everyday-problems\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/www.webcodegeeks.com\/category\/python\/"},{"@type":"ListItem","position":3,"name":"71 Python Code Snippets for Everyday Problems"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/7eaa8e89cf23a5de82a048beb4c59aa1","name":"Jeremy Grifski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9d50311a27dff0a54d775b6106b8f804d5d11d0b5182ed537f325046a020c6f5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9d50311a27dff0a54d775b6106b8f804d5d11d0b5182ed537f325046a020c6f5?s=96&d=mm&r=g","caption":"Jeremy Grifski"},"description":"Jeremy is the founder of The Renegade Coder, a software curriculum website launched in 2017. In addition, he is a PhD student with an interest in education and data visualization.","sameAs":["https:\/\/therenegadecoder.com\/","https:\/\/www.linkedin.com\/in\/jeremy-grifski-22240552\/","https:\/\/x.com\/RenegadeCoder94"],"url":"https:\/\/www.webcodegeeks.com\/author\/jeremy-grifski\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/24991","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/14722"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=24991"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/24991\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/1651"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=24991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=24991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=24991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}