Coding With Fun
Home Docker Django Node.js Articles Python pip guide FAQ Policy

Python practical tips, 30 Python minimalist codes


Jun 01, 2021 Article blog



How to learn programming the fastest, of course, is a variety of small projects in action, only their own brain to think, hands-on, impression is the most profound. This article is 30 minimalist tasks that beginners can try to implement on their own, and it's also 30 pieces of code, and Python developers can see if there's an unexpected usage.

Python is the most widely used programming language for machine learning, and its most important advantage is the ease of use of programming. I f the reader already has some knowledge of the basic Python syntax, this article may give you some inspiration. The author has a brief overview of 30 pieces of code, all of which are common and practical techniques that we can browse from start to finish in just a few minutes.

1. Repeat the element decision

The following method checks whether there are duplicate elements in a given list, and it uses set() function to remove all duplicate elements.

def all_unique(lst):  
return len(lst)== len(set(lst))  
x = [1,1,2,2,3,2,3,4,5,6]  
y = [1,2,3,4,5]  
all_unique(x) # False  
all_unique(y) # True 

2. Character elements make up the decision

Check that the constituent elements of the two strings are not the same.

from collections import Counter  
def anagram(first, second):  
return Counter(first) == Counter(second)  
anagram("abcd3", "3acdb") # True 

3. Memory footprint

import sys  
variable = 30  
print(sys.getsizeof(variable)) # 24 

4. Byte occupancy

The following block of code checks the number of bytes consumed by strings.

def byte_size(string):  
return(len(string.encode('utf-8')))  
byte_size('') # 4  
byte_size('Hello World') # 11 

5. Print the string N times

The block of code does not require a circular statement to print the N-string.

n = 2  
s ="Programming"  
print(s * n)  
# ProgrammingProgramming 

6. Capital the first letter

The following block of code uses title() method to capitalate the first letter of each word in the string.

s = "programming is awesome"  
print(s.title())  
# Programming Is Awesome 

7. Blocking

Given the exact size, define a function to cut the list at that size.

from math import ceil  
def chunk(lst, size):  
return list(  
map(lambda x: lst[x * size:x * size + size],  
list(range(0, ceil(len(lst) / size)))))  
chunk([1,2,3,4,5],2)  
# [[1,2],[3,4],5] 

8. Compression

This method removes the value of the Boolean type, for example (False, None, 0, ""), which uses filter() function.

def compact(lst):  
return list(filter(bool, lst))  
compact([0, 1, False, 2, '', 3, 'a', 's', 34])  
# [ 1, 2, 3, 'a', 's', 34 ] 

9. Unpack

The following snippets untangled the packaged pair list into two different tuples.

array = [['a', 'b'], ['c', 'd'], ['e', 'f']]  
transposed = zip(*array)  
print(transposed)  
# [('a', 'c', 'e'), ('b', 'd', 'f')] 

10. Chain comparison

We can use different operators in a single line of code to compare multiple different elements.

a = 3  
print( 2 < a < 8) # True  
print(1 == a < 2) # False 

(Recommended tutorial: python tutorial)

11. Comma connection

The following code can connect lists to a single string, and the separation between each element is set to a comma.

hobbies = ["basketball", "football", "swimming"]  
print("My hobbies are: " + ", ".join(hobbies))  
# My hobbies are: basketball, football, swimming 

12. vowel statistics

The following method counts the number of vowels ('a', 'e', 'i', 'o', 'u') in a string, which is done through regular expressions.

import re  
def count_vowels(str):  
return len(len(re.findall(r'[aeiou]', str, re.IGNORECASE)))  
count_vowels('foobar') # 3  
count_vowels('gym') # 0 

13. Lowercase initials

The following method unites the first character of a given string into lowercase.

def decapitalize(string):  
return str[:1].lower() + str[1:]  
decapitalize('FooBar') # 'fooBar'  
decapitalize('FooBar') # 'fooBar' 

14. Expand the list

The method expands the nesting of the list into a single list by recursively.

def spread(arg):  
ret = []  
for i in arg: 
if isinstance(i, list):  
ret.extend(i)  
else:  
ret.append(i)  
return ret  
def deep_flatten(lst):  
result = []  
result.extend(  
spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))  
return result  
deep_flatten([1, [2], [[3], 4], 5]) # [1,2,3,4,5] 

15. The difference in the list

The method returns the element of the first list, which is not in the second list. If you want to feed back elements unique to the second list at the same time, you need to add set_b.difference(set_a)

def difference(a, b):  
setset_a = set(a)  
setset_b = set(b) 
comparison = set_a.difference(set_b)  
return list(comparison)  
difference([1,2,3], [1,2,4]) # [3] 

16. Take the difference by function

The following method first applies a given function, and then returns the list element with different results after the function is applied.

def difference_by(a, b, fn):  
b = set(map(fn, b))  
return [item for item in a if fn(item) not in b]  
from math import floor  
difference_by([2.1, 1.2], [2.3, 3.4],floor) # [1.2]  
difference_by([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], lambda v : v['x'])  
# [ { x: 2 } ] 

17. Chain function calls

You can call multiple functions within a single line of code.

def add(a, b):  
return a + b  
def subtract(a, b):  
return a - b  
a, b = 4, 5  
print((subtract if a > b else add)(a, b)) # 9 

18. Check for duplicates

The following code checks to see if there are duplicates in both lists.

def has_duplicates(lst):  
return len(lst) != len(set(lst))  
x = [1,2,3,4,5,5]  
y = [1,2,3,4,5]  
has_duplicates(x) # True  
has_duplicates(y) # False

19. Merge the two dictionaries

The following method will be used to merge the two dictionaries.

def merge_two_dicts(a, b):  
c = a.copy() # make a copy of a   
c.update(b) # modify keys and values of a with the once from b  
return c  
a={'x':1,'y':2}  
b={'y':3,'z':4}  
print(merge_two_dicts(a,b))  
#{'y':3,'x':1,'z':4} 

In Python 3.5 or later, we can also merge dictionaries in the following ways:

def merge_dictionaries(a, b)  
return {**a, **b}  
a = { 'x': 1, 'y': 2}  
b = { 'y': 3, 'z': 4}  
print(merge_dictionaries(a, b))  
# {'y': 3, 'x': 1, 'z': 4} 

20. Turn two lists into dictionaries

The following method will convert the two lists into a single dictionary.

def to_dictionary(keys, values):  
return dict(zip(keys, values))  
keys = ["a", "b", "c"]  
values = [2, 3, 4]  
print(to_dictionary(keys, values))  
#{'a': 2, 'c': 4, 'b': 3} 

21. Use enumeration

We often use For loops to traverse a list, and we can also enumerate the indexes and values of a list.

list = ["a", "b", "c", "d"]  
for index, element in enumerate(list):   
print("Value", element, "Index ", index, )  
# ('Value', 'a', 'Index ', 0)  
# ('Value', 'b', 'Index ', 1)  
#('Value', 'c', 'Index ', 2)  
# ('Value', 'd', 'Index ', 3) 

22. Execution time

The following blocks of code can be used to calculate the time it takes to execute a particular code.

import time  
start_time = time.time()  
a = 1 
b = 2  
c = a + b  
print(c) #3  
end_time = time.time()  
total_time = end_time - start_time  
print("Time: ", total_time)  
# ('Time: ', 1.1205673217773438e-05)  

23.Try else

We can also add an else clause when we use the try/except statement, which will be run if an error is not triggered.

try:  
2*3  
except TypeError:  
print("An exception was raised")  
else:  
print("Thank God, no exceptions were raised.")  
#Thank God, no exceptions were raised. 

24. Element frequency

The following method takes the most common elements in the list based on the frequency of the elements.

def most_frequent(list):  
return max(set(list), key = list.count)  
list = [1,2,1,2,3,2,1,4,2]  
most_frequent(list) 

25. Reply sequence

The following method checks whether a given string is a reply sequence, first converting all letters into lowercases and removing non-English letter symbols. Finally, it compares whether the string is equal to the reverse string, which is represented as a reply sequence.

def palindrome(string):  
from re import sub  
s = sub('[\W_]', '', string.lower())  
return s == s[::-1]  
palindrome('taco cat') # True 

26. Do not use if-else's calculations

This piece of code can be implemented without the use of conditional statements, addition, subtraction, power operation, it is implemented through the dictionary as a data structure:

import operator  
action = {  
"+": operator.add,  
"-": operator.sub, 
"/": operator.truediv,  
"*": operator.mul,  
"**": pow  
}  
print(action['-'](50, 25)) # 25 

27.Shuffle

The algorithm disrupts the order of list elements, and it sorts new lists primarily through the Fisher-Yates algorithm:

from copy import deepcopy  
from random import randint  
def shuffle(lst):  
temp_lst = deepcopy(lst)  
m = len(temp_lst)  
while (m):  
m -= 1  
i = randint(0, m)  
temp_lst[m], temp_lst[i] = temp_lst[i], temp_lst[m]  
return temp_lst  
foo = [1,2,3]  
shuffle(foo) # [2,3,1] , foo = [1,2,3] 

28. Expand list

Expand all elements within the list, including sub-lists, into a list.

def spread(arg):  
ret = []  
for i in arg:if isinstance(i, list):  
ret.extend(i) 
else:  
ret.append(i)  
return ret  
spread([1,2,3,[4,5,6],[7],8,9]) # [1,2,3,4,5,6,7,8,9] 

29. Swap values

You do not need additional action to exchange the values of the two variables.

def swap(a, b):  
return b, a  
a, b = -1, 14  
swap(a, b) # (14, -1)  
spread([1,2,3,[4,5,6],[7],8,9]) # [1,2,3,4,5,6,7,8,9] 

30. Dictionary default

By taking the corresponding Value value from Key you can set the default value in the following ways. If get() method does not set a default value, None is returned if a Key that does not exist is encountered.

d = {'a': 1, 'b': 2}  
print(d.get('c', 3)) # 3  

(Recommended micro-course: python3 basic micro-course)

Here's a look at Python practical tips and 30 Python minimalist codes.