30 Minimal Python Tasks for Beginners
This article presents thirty concise Python exercises covering common tasks such as duplicate detection, anagram checking, memory usage, list manipulation, dictionary merging, and more, each illustrated with clear code examples to help beginners practice and deepen their programming skills.
This article provides a collection of thirty short Python tasks designed for beginners to practice and reinforce fundamental programming concepts. Each task includes a brief description and a complete code example.
1. Duplicate element detection
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]
print(all_unique(x)) # False
print(all_unique(y)) # True2. Character composition (anagram) check
from collections import Counter
def anagram(first, second):
return Counter(first) == Counter(second)
print(anagram("abcd3", "3acdb")) # True3. Memory size of a variable
import sys
variable = 30
print(sys.getsizeof(variable)) # 244. Byte size of a string
def byte_size(string):
return len(string.encode('utf-8'))
print(byte_size('😀')) # 4
print(byte_size('Hello World')) # 115. Print a string N times without a loop
n = 2
s = "Programming"
print(s * n) # ProgrammingProgramming6. Capitalize first letter of each word
s = "programming is awesome"
print(s.title()) # Programming Is Awesome7. Chunk a list into fixed-size pieces
from math import ceil
def chunk(lst, size):
return list(map(lambda x: lst[x*size:x*size+size], range(0, ceil(len(lst)/size))))
print(chunk([1,2,3,4,5], 2)) # [[1,2],[3,4],5]8. Compact a list by removing falsy values
def compact(lst):
return list(filter(bool, lst))
print(compact([0,1,False,2,'',3,'a','s',34])) # [1, 2, 3, 'a', 's', 34]9. Unpack paired lists into separate tuples
array = [['a','b'], ['c','d'], ['e','f']]
transposed = zip(*array)
print(list(transposed)) # [('a', 'c', 'e'), ('b', 'd', 'f')]10. Chain comparisons in a single line
a = 3
print(2 < a < 8) # True
print(1 == a < 2) # False11. Join list elements with commas
hobbies = ["basketball", "football", "swimming"]
print("My hobbies are: " + ", ".join(hobbies)) # My hobbies are: basketball, football, swimming12. Count vowels using regex
import re
def count_vowels(s):
return len(re.findall(r'[aeiou]', s, re.IGNORECASE))
print(count_vowels('foobar')) # 3
print(count_vowels('gym')) # 013. Decapitalize first character
def decapitalize(string):
return string[:1].lower() + string[1:]
print(decapitalize('FooBar')) # fooBar14. Flatten a nested list (shallow)
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
print(deep_flatten([1, [2], [[3], 4], 5])) # [1,2,3,4,5]15. List difference
def difference(a, b):
set_a = set(a)
set_b = set(b)
return list(set_a.difference(set_b))
print(difference([1,2,3], [1,2,4])) # [3]16. Difference by applying a function
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
print(difference_by([2.1, 1.2], [2.3, 3.4], floor)) # [1.2]17. Chain function calls
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)) # 918. Check for duplicates in a list
def has_duplicates(lst):
return len(lst) != len(set(lst))
x = [1,2,3,4,5,5]
y = [1,2,3,4,5]
print(has_duplicates(x)) # True
print(has_duplicates(y)) # False19. Merge two dictionaries
def merge_two_dicts(a, b):
c = a.copy()
c.update(b)
return c
a = {'x': 1, 'y': 2}
b = {'y': 3, 'z': 4}
print(merge_two_dicts(a, b)) # {'x': 1, 'y': 3, 'z': 4}
# Using dict unpacking (Python 3.5+)
def merge_dictionaries(a, b):
return {**a, **b}
print(merge_dictionaries(a, b)) # {'x': 1, 'y': 3, 'z': 4}20. Convert two lists to a 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, 'b': 3, 'c': 4}21. Enumerate list with index
lst = ["a", "b", "c", "d"]
for index, element in enumerate(lst):
print("Value", element, "Index", index)
# Output:
# Value a Index 0
# Value b Index 1
# Value c Index 2
# Value d Index 322. Measure execution time
import time
start_time = time.time()
a = 1
b = 2
c = a + b
print(c) # 3
end_time = time.time()
print("Time:", end_time - start_time)
# Example output: Time: 1.12e-0523. Try/except with else clause
try:
2*3
except TypeError:
print("An exception was raised")
else:
print("Thank God, no exceptions were raised.")
# Output: Thank God, no exceptions were raised.24. Most frequent element in a list
def most_frequent(lst):
return max(set(lst), key=lst.count)
lst = [1,2,1,2,3,2,1,4,2]
print(most_frequent(lst)) # 225. Palindrome check
def palindrome(string):
from re import sub
s = sub(r'[\W_]', '', string.lower())
return s == s[::-1]
print(palindrome('taco cat')) # True26. Operator dictionary for arithmetic without if‑else
import operator
action = {
"+": operator.add,
"-": operator.sub,
"/": operator.truediv,
"*": operator.mul,
"**": pow
}
print(action['-'](50, 25)) # 2527. Shuffle a list (Fisher‑Yates)
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]
print(shuffle(foo)) # e.g., [2,3,1]28. Fully flatten a nested list
def spread(arg):
ret = []
for i in arg:
if isinstance(i, list):
ret.extend(i)
else:
ret.append(i)
return ret
print(spread([1,2,3,[4,5,6],[7],8,9])) # [1,2,3,4,5,6,7,8,9]29. Swap two variables without a temporary variable
def swap(a, b):
return b, a
a, b = -1, 14
print(swap(a, b)) # (14, -1)30. Dictionary get with default value
d = {'a': 1, 'b': 2}
print(d.get('c', 3)) # 3These concise examples provide a practical toolbox for Python learners to experiment with common programming patterns and improve their coding proficiency.
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.