In this article, we are going to cover some useful python tricks and tips that will come handy when you are writing program in competitive programming or for your company as they reduce the code and optimized execution.
In-Place Swapping of two Numbers
x, y = 50, 70
print(x, y)
#swapping
x, y = y, x
print(x, y)
Output
50 70
70 50
Creating a single string from a list
lst = ['What', 'a', 'fine', 'morning']
print(" ".join(lst))
Output
What a fine morning
Remove duplicates from a list
# Remove duplicates from a list
#This method will not preserve the order
lst = [2, 4, 4 ,9 , 13, 4, 2]
print("Original list: ", lst)
new_lst = list(set(lst))
print(new_lst)
# Below method will preserve the order
from collections import OrderedDict
lst = [2, 4, 4 ,9 , 13, 4, 2]
print(list(OrderedDict.fromkeys(lst).keys()))
Output
Original list: [2, 4, 4, 9, 13, 4, 2]
[9, 2, 4, 13]
[2, 4, 9, 13]
Reverse a string
#Reverse a string
s = "Hello, World!"
print(s[::-1])
letters = ("abcdefghijklmnopqrstuvwxyz")
print(letters[::-1])
Output
!dlroW ,olleH
Zyxwvutsrqponmlkjihgfedcba
Reversing a list
# Reversing a list
lst = [20, 40 , 60, 80]
print(lst[::-1])
Output
[80, 60, 40, 20]
Transpose two-dimensional array
#Transpose of a 2d array, that means if the matrix is 2 * 3 after transpose it will be 3* 2 matrix.
matrix = [['a', 'b', 'c'], ['d', 'e', 'f']]
transMatrix = zip (*matrix)
print(list (transMatrix))
Output
[('a', 'd'), ('b', 'e'), ('c', 'f')]
Check if two strings are anagrams
#Check if two strings are anagrams
from collections import Counter
def is_anagram (str1, str2):
return Counter(str1) == Counter(str2)
print(is_anagram('hello', 'ollhe'))
#and
print(is_anagram('Hello', 'hello'))
Output
True
False
Inspect an object in python
#Inspect an object in pyton
lst =[1, 3, 4, 7, 9]
print(dir(lst))
Output
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
Enumerate a list
#Enumerate a list
lst = [20, 10, 40, 50 , 30, 40]
for i, value in enumerate(lst):
print(i, ': ', value)
Output
0 : 20
1 : 10
2 : 40
3 : 50
4 : 30
5 : 40
Factorial of any number
#Factorial of any number
import functools
result = (lambda s: functools.reduce(int. __mul__, range(1, s+1), 1))(5)
print(result)
Output
120
Creating a dictionary from two related sequences
#Creating a dictionary from two related sequences
x1 = ('Name', 'EmpId', 'Sector')
y1 = ('Zack', 4005, 'Finance')
print(dict (zip(x1, y1)))
Output
{'Name': 'Zack', 'EmpId': 4005, 'Sector': 'Finance'}