0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

1 / 23

Python is a versatile and beginner-friendly programming language, and learning some hacks and tricks can help you write more efficient and readable code. Here are some useful Python hacks and tricks for beginners:


1. Swap Variables Without a Temporary Variable

Instead of using a temporary variable to swap values, you can do it in one line:

a, b = 5, 10
a, b = b, a
print(a, b)  # Output: 10, 5

2. List Comprehensions

List comprehensions are a concise way to create lists:

# Instead of:
squares = []
for x in range(10):
    squares.append(x**2)

# Use:
squares = [x**2 for x in range(10)]
print(squares)  # Output: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

3. Merge Dictionaries

You can merge two dictionaries using the | operator (Python 3.9+):

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merged = dict1 | dict2
print(merged)  # Output: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

4. Unpacking with * and **

Unpacking allows you to assign values from iterables to variables easily:

# Unpacking a list
numbers = [1, 2, 3, 4, 5]
first, *middle, last = numbers
print(first)   # Output: 1
print(middle)  # Output: [2, 3, 4]
print(last)    # Output: 5

# Unpacking a dictionary
def greet(name, age):
    print(f"Hello {name}, you are {age} years old.")

person = {'name': 'Alice', 'age': 25}
greet(**person)  # Output: Hello Alice, you are 25 years old.

5. Ternary Operator for Conditional Assignments

Use the ternary operator for concise conditional assignments:

age = 20
status = "Adult" if age >= 18 else "Minor"
print(status)  # Output: Adult

6. Enumerate for Index and Value

Use enumerate to get both the index and value in a loop:

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
    print(index, fruit)
# Output:
# 0 apple
# 1 banana
# 2 cherry

7. Zip to Combine Lists

Use zip to combine two or more lists:

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")
# Output:
# Alice is 25 years old.
# Bob is 30 years old.
# Charlie is 35 years old.

8. Use set to Remove Duplicates

Convert a list to a set to remove duplicates:

numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = list(set(numbers))
print(unique_numbers)  # Output: [1, 2, 3, 4, 5]

9. Check if a List is Empty

Use the fact that empty lists are False in a boolean context:

my_list = []
if not my_list:
    print("The list is empty!")

10. Use any() and all() for Conditions

  • any() returns True if at least one element in an iterable is True.
  • all() returns True only if all elements are True.
numbers = [1, 2, 3, 0, 4]
print(any(numbers))  # Output: True (at least one non-zero)
print(all(numbers))  # Output: False (0 is False)

11. Reverse a String or List

Use slicing to reverse a string or list:

text = "Hello, World!"
print(text[::-1])  # Output: !dlroW ,olleH

numbers = [1, 2, 3, 4, 5]
print(numbers[::-1])  # Output: [5, 4, 3, 2, 1]

12. Use get() to Avoid Key Errors in Dictionaries

The get() method returns None (or a default value) if a key doesn't exist:

my_dict = {'a': 1, 'b': 2}
print(my_dict.get('c', 'Key not found'))  # Output: Key not found

13. Chain Comparisons

Python allows chaining comparison operators:

x = 5
print(1 < x < 10)  # Output: True

14. Use f-strings for String Formatting

f-strings are a clean and efficient way to format strings:

name = "Alice"
age = 25
print(f"{name} is {age} years old.")  # Output: Alice is 25 years old.

15. Use collections.defaultdict for Default Values

defaultdict automatically assigns a default value to missing keys:

from collections import defaultdict

my_dict = defaultdict(int)
my_dict['a'] += 1
print(my_dict['a'])  # Output: 1
print(my_dict['b'])  # Output: 0 (default value for int)

16. Use itertools for Advanced Iteration

The itertools module provides powerful tools for working with iterators:

import itertools

# Infinite loop with a counter
for i in itertools.count(10):
    if i > 15:
        break
    print(i)  # Output: 10, 11, 12, 13, 14, 15

17. Use with for File Handling

The with statement automatically closes files after use:

with open('file.txt', 'r') as file:
    content = file.read()
print(content)

18. Use __name__ == "__main__" for Script Execution

Use this to ensure code runs only when the script is executed directly:

if __name__ == "__main__":
    print("This script is running directly!")

19. Use map() and filter() for Functional Programming

  • map() applies a function to all items in an iterable.
  • filter() filters items based on a condition.
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(squared)  # Output: [1, 4, 9, 16, 25]
print(evens)    # Output: [2, 4]

20. Use timeit to Measure Execution Time

Measure the execution time of small code snippets:

import timeit
print(timeit.timeit('"-".join(str(n) for n in range(100))', number=10000))

These hacks and tricks will help you write cleaner, more efficient, and Pythonic code. Practice them regularly to become more proficient!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?