20 Essential Python Tips to Improve Code Readability and Efficiency
This article presents twenty practical Python tricks—including string reversal, title casing, unique element extraction, list repetition, list comprehensions, variable swapping, splitting, joining, palindrome checking, frequency counting, anagram detection, exception handling, enumeration, dictionary merging, timing code execution, flattening, sampling, digit conversion, and uniqueness testing—to help developers write clearer, more efficient code.
Python's readability and simplicity are two major reasons for its popularity; this article introduces 20 common Python techniques that improve code readability and can save a lot of development time.
1. String reversal
# Reversing a string using slicing
my_string = "ABCDE"
reversed_string = my_string[::-1]
print(reversed_string)
# Output
# EDCBA2. Capitalize first letter of each word
my_string = "my name is chaitanya baweja"
# using the title() function of string class
new_string = my_string.title()
print(new_string)
# Output
# My Name Is Chaitanya Baweja3. Find unique characters in a string
my_string = "aavvccccddddeee"
# converting the string to a set
temp_set = set(my_string)
# stitching set into a string using join
new_string = ''.join(temp_set)
print(new_string)
# Output
# cdvae4. Repeat a string or list n times
n = 3 # number of repetitions
my_string = "abcd"
my_list = [1,2,3]
print(my_string * n) # abcdabcdabcd
print(my_list * n) # [1,2,3,1,2,3,1,2,3]5. List comprehension for element-wise multiplication
# Multiplying each element in a list by 2
original_list = [1,2,3,4]
new_list = [2*x for x in original_list]
print(new_list)
# Output
# [2,4,6,8]6. Variable swapping
a = 1
b = 2
a, b = b, a
print(a) # 2
print(b) # 17. Split a string into a list of substrings
string_1 = "My name is Chaitanya Baweja"
string_2 = "sample/ string 2"
# default separator ' '
print(string_1.split())
# ['My', 'name', 'is', 'Chaitanya', 'Baweja']
# defining separator as '/'
print(string_2.split('/'))
# ['sample', ' string 2']8. Join multiple strings into one string
list_of_strings = ['My','name','is','Chaitanya','Baweja']
print(','.join(list_of_strings))
# Output
# My,name,is,Chaitanya,Baweja9. Check if a string is a palindrome
my_string = "abcba"
if my_string == my_string[::-1]:
print("palindrome")
else:
print("not palindrome")
# Output
# palindrome10. Count occurrences of each element in a list
from collections import Counter
my_list = ['a','a','b','b','b','c','d','d','d','d','d']
count = Counter(my_list)
print(count)
# Counter({'d': 5, 'b': 3, 'a': 2, 'c': 1})
print(count['b']) # 3
print(count.most_common(1)) # [('d', 5)]11. Determine if two strings are anagrams
from collections import Counter
str_1, str_2, str_3 = "acbde", "abced", "abcda"
cnt_1, cnt_2, cnt_3 = Counter(str_1), Counter(str_2), Counter(str_3)
if cnt_1 == cnt_2:
print('1 and 2 anagram')
if cnt_1 == cnt_3:
print('1 and 3 anagram')
# Output
# 1 and 2 anagram12. Use try‑except‑else‑finally for error handling
a, b = 1, 0
try:
print(a / b)
except ZeroDivisionError:
print("division by zero")
else:
print("no exceptions raised")
finally:
print("Run this always")
# Output
# division by zero
# Run this always13. Enumerate a list to get index/value pairs
my_list = ['a','b','c','d','e']
for index, value in enumerate(my_list):
print('{0}: {1}'.format(index, value))
# 0: a
# 1: b
# 2: c
# 3: d
# 4: e14. Check memory size of an object
import sys
num = 21
print(sys.getsizeof(num))
# In Python 3, 2815. Merge dictionaries
dict_1 = {'apple': 9, 'banana': 6}
dict_2 = {'banana': 4, 'orange': 8}
combined_dict = {**dict_1, **dict_2}
print(combined_dict)
# Output
# {'apple': 9, 'banana': 4, 'orange': 8}16. Measure execution time of a code block
import time
start_time = time.time()
# Code to check follows
for i in range(10**5):
a, b = 1, 2
c = a + b
# Code to check ends
end_time = time.time()
time_taken_in_micro = (end_time - start_time) * (10**6)
print(time_taken_in_micro)
# Example output
# 18770.21789550781217. Flatten a nested list
from iteration_utilities import deepflatten
def flatten(l):
return [item for sublist in l for item in sublist]
l = [[1,2,3],[3]]
print(flatten(l))
# [1, 2, 3, 3]
l = [[1,2,3],[4,[5]],[6,7]],[[8],[9,[10]]]]
print(list(deepflatten(l, depth=3)))
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]18. Randomly sample elements from a list
import random
my_list = ['a','b','c','d','e']
num_samples = 2
samples = random.sample(my_list, num_samples)
print(samples)
# e.g., ['a', 'e'] (any two random values)19. Convert an integer into a list of its digits
num = 123456
# using map
list_of_digits = list(map(int, str(num)))
print(list_of_digits)
# [1, 2, 3, 4, 5, 6]
# using list comprehension
list_of_digits = [int(x) for x in str(num)]
print(list_of_digits)
# [1, 2, 3, 4, 5, 6]20. Check uniqueness of list elements
def unique(l):
if len(l) == len(set(l)):
print("All elements are unique")
else:
print("List has duplicates")
unique([1,2,3,4]) # All elements are unique
unique([1,1,2,3]) # List has duplicatesFor further learning, readers are encouraged to scan the QR code in the original article to obtain free Python study resources, including e‑books, tutorials, project examples, and source code.
Python Programming Learning Circle
A global community of Chinese Python developers offering technical articles, columns, original video tutorials, and problem sets. Topics include web full‑stack development, web scraping, data analysis, natural language processing, image processing, machine learning, automated testing, DevOps automation, and big data.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.