Toolbly
Guide
5 min read

20 Basic List Comprehension Examples for Beginners (2026)

Toolbly Team
Toolbly Team
|
January 16, 2026

The best way to learn Python list comprehensions isn't by memorizing syntax diagrams; it's by seeing them in action. If you have been writing for loops for basic tasks like doubling numbers or cleaning strings, you are about to save a lot of typing.

This guide provides 20 practical, beginner-friendly examples of list comprehensions. We have categorized them so you can find exactly what you need.

[!NOTE] Quick Reference

  • Syntax: [op(x) for x in list]
  • Filtering: [x for x in list if check(x)]
  • Mapping: [op(x) for x in list]

Table of Contents

  1. How to Read These Examples
  2. Category 1: Working with Numbers
  3. Category 2: String Manipulation
  4. Category 3: Type Conversion
  5. Category 4: Working with Objects/Dictionaries
  6. Category 5: Boolean Logic
  7. Practice Challenges
  8. Test Your Knowledge (Quiz)

How to Read These Examples

For every example, we will show you:

  1. The Task: What we want to achieve.
  2. The Code: The list comprehension solution.
  3. The Explanation: Why it works.

Here is a simple visualization of what is happening:

   Input List:   [1,   2,   3]
                     |
    Operation:     (x * 10)
                     |
   Output List:  [10,  20,  30]

Category 1: Working with Numbers

1. The "Hello World" (Copying a List)

Simply create a copy of a list.

Advertisement
nums = [1, 2, 3]
copy_nums = [x for x in nums]
# Result: [1, 2, 3]

Why: It iterates over nums, assigning each value to x, and putting x into the new list.

2. Doubling Numbers

Multiply every number by 2.

nums = [1, 2, 3, 4, 5]
doubled = [x * 2 for x in nums]
# Result: [2, 4, 6, 8, 10]

3. Squaring Numbers

Calculate the square ($x^2$) of numbers from 0 to 4.

# range(5) gives 0, 1, 2, 3, 4
squares = [x ** 2 for x in range(5)]
# Result: [0, 1, 4, 9, 16]

4. Adding a Constant

Add 10 to every number (e.g., adjusting scores).

scores = [85, 90, 78]
adjusted = [s + 10 for s in scores]
# Result: [95, 100, 88]

5. Calculating Remainders (Modulo)

Find the remainder when dividing by 3.

nums = [10, 11, 12, 13]
remainders = [n % 3 for n in nums]
# Result: [1, 2, 0, 1]

Category 2: String Manipulation

6. Uppercase Conversion

Convert a list of names to SHOUTY CAPITALS.

Advertisement
names = ["alice", "bob", "charlie"]
upper = [name.upper() for name in names]
# Result: ['ALICE', 'BOB', 'CHARLIE']

7. Extract First Character (Initials)

Get the first letter of each word.

words = ["Apple", "Banana", "Cherry"]
initials = [w[0] for w in words]
# Result: ['A', 'B', 'C']

8. Measuring Lengths

Create a list of numbers representing word lengths.

animals = ["cat", "horse", "elephant"]
lengths = [len(a) for a in animals]
# Result: [3, 5, 8]

9. String Formatting (f-strings)

Add a prefix to every item.

users = ["user1", "user2"]
emails = [f"{u}@example.com" for u in users]
# Result: ['user1@example.com', 'user2@example.com']

10. Cleaning Whitespace

Strip spaces from messy user input.

raw_data = ["  hello ", "world  ", "  python  "]
clean = [s.strip() for s in raw_data]
# Result: ['hello', 'world', 'python']

Category 3: Type Conversion

11. String to Integer

Convert a list of numeric strings into actual integers for math.

str_nums = ["10", "20", "30"]
int_nums = [int(x) for x in str_nums]
# Result: [10, 20, 30]

12. Integer to Float

Convert integers to floating-point numbers.

Advertisement
prices = [10, 20, 30]
float_prices = [float(p) for p in prices]
# Result: [10.0, 20.0, 30.0]

13. Boolean to Integer

Convert True/False to 1/0. Detailed for data science.

flags = [True, False, True]
binary = [int(f) for f in flags]
# Result: [1, 0, 1]

14. List of Lists to Lengths

Convert complex structures to simple metrics.

nested = [[1, 2], [3, 4, 5], []]
counts = [len(sublist) for sublist in nested]
# Result: [2, 3, 0]

Category 4: Objects & Dictionaries

15. Extracting Dictionary Values

Get a specific field from a list of dicts (e.g., API response).

users = [
    {'id': 1, 'name': 'Alice'},
    {'id': 2, 'name': 'Bob'}
]
names = [u['name'] for u in users]
# Result: ['Alice', 'Bob']

16. Extracting Object Attributes

Assuming you have a class User with a .email attribute.

# emails = [user.email for user in user_list]

17. Creating Tuples (Pairing Data)

Create a list of (index, value) pairs using enumerate.

chars = ['a', 'b', 'c']
indexed = [(i, c) for i, c in enumerate(chars)]
# Result: [(0, 'a'), (1, 'b'), (2, 'c')]

Category 5: Boolean Logic

18. Checking Truthiness

Convert values to booleans to check if they are empty or not.

Advertisement
values = ["text", "", 1, 0, []]
is_truthy = [bool(v) for v in values]
# Result: [True, False, True, False, False]

19. Type Checking

Check if items are numbers.

mixed = [1, "a", 2.5]
is_number = [isinstance(x, (int, float)) for x in mixed]
# Result: [True, False, True]

20. Comparison Checks

Check if numbers are positive.

nums = [10, -5, 0]
is_positive = [n > 0 for n in nums]
# Result: [True, False, False]

Practice Challenges

Ready to test yourself? Try these without looking at the solutions immediately.

  1. Challenge 1: Create a list of the first 3 letters of each month name. ['January', 'February'] -> ['Jan', 'Feb'].
  2. Challenge 2: Create a list that contains True if a word starts with "A", and False otherwise.
  3. Challenge 3: Given range(5), create a list of strings: ["Number 0", "Number 1", "Number 2"...].

Test Your Knowledge

Summary

You have just seen 20 ways to avoid writing a generic for loop. The key is to recognize the pattern: whenever you want to transform a list into another list of the same length, a list comprehension is the answer.

Next Steps:

T

Toolbly Team

Author

Writer and explorer at Toolbly. Passionate about software development, DevOps, and building useful tools for the web.

Share: