We're actively developing the Python course; advanced AI courses will be released soon.

Learn AI Way

Python Lists - Basics


1. Introduction


If you are learning Python, lists should be one of the first data structures you understand properly. A Python list helps you store multiple values in one place, such as names, prices, marks, product items, API results, or user inputs.

In real-world Python programs, lists are used everywhere. You may use a list to store shopping cart items, student marks, employee names, log messages, chatbot responses, or data coming from an API. Once you understand lists clearly, many other Python topics like loops, functions, JSON, APIs, and data processing become much easier.

In real-world applications, it is mostly used in two ways:

a) Storing data into an AI model
b) Managing user input

What You Will Learn

In this Python lists tutorial, you will learn:

  • What a list is in Python?
  • How to create a list?
  • How to access list items using indexing?
  • How positive and negative indexing work?
  • How to change list items?
  • How to add items using append(), insert(), and extend()?
  • How to remove items using remove(), pop(), del, and clear()?
  • Common mistakes beginners make with Python lists.
  • A real-world shopping cart example using lists.

2. What is a List in Python?

A list in Python is an ordered collection of items. In simple words, a list helps you store multiple values inside one variable.

For example, instead of creating separate variables like this:

student1 = "Amit"
student2 = "Ravi"
student3 = "Neha"

You can store all names inside one list:

students = ["Amit", "Ravi", "Neha"]

This makes your code cleaner and easier to manage.

You can think of a list like a shopping list. You can add new items, remove items, change items, and access any item based on its position.

Now that you understand the basic idea of a Python list, let’s look at a few simple Python list examples to see how lists store different types of data in real programs.

fruits = ["apple", "banana", "mango"]
numbers = [1, 2, 3, 4, 5]
mixed = ["apple", 10, True, 5.6]

In the first statement, the list stores fruit names. In the second statement, the list stores numbers. In the third one, the list stores different types of values together, such as a string, integer, boolean, and float.

Python List Syntax

The basic syntax of a Python list looks like this:

list_name = [item1, item2, item3]

A list is created using square brackets []. Each item inside the list is separated by a comma.

Example:

cities = ["Delhi", "Mumbai", "Bangalore"]

Here, cities is the list name, and "Delhi", "Mumbai", and "Bangalore" are list items.

3. How to Create a List in Python

You can create a list by placing values inside square brackets.

languages = ["Python", "Java", "JavaScript"]

print(languages)

Output:

['Python', 'Java', 'JavaScript']

In this example, we created a list called languages. It contains three programming languages. When we print the list, Python displays all items in the same order.

Important: Python lists are ordered. It means the items stay in the same sequence in which you added them.

Create an Empty List in Python

Sometimes, you do not know the values in advance. In that case, you can create an empty list first and add items later.

users = []

users.append("Rajat")
users.append("Amit")
users.append("Neha")

print(users)

Output:

['Rajat', 'Amit', 'Neha']

Explanation:

In this example, first we created an empty list called users. Then we added names one by one using the append() method. This pattern is common when you collect user input, API results, form data, or log messages.

Can a Python List Store Different Data Types?

Yes, a Python list can store different data types together. A single list can contain strings, numbers, booleans, floats, or even another list.

user = ["Amit", 25, True, 78.5]

print(user)

Output:

['Amit', 25, True, 78.5]

Explanation:

In this example, the list stores a name, age, active status, and score. This flexibility is useful when you are learning Python or creating quick examples.

However, in real-world production code, it is usually better to keep similar types of data together. For example, a list of prices should contain numbers, and a list of usernames should contain strings.

4. How to Access Items in a Python List

Each item in a Python list has an index position. Indexing starts from 0, not 1.

This means:

    • The first item is at index 0
    • The second item is at index 1
    • The third item is at index 2
    fruits = ["apple", "banana", "cherry"]
    
    print(fruits[0])
    print(fruits[1])
    print(fruits[2])

    Output:

    apple
    banana
    cherry

    Explanation:

    In this example, "apple" is at index 0, "banana" is at index 1, and "cherry" is at index 2. This is one of the most important concepts to understand because you will use indexing again and again in Python.

    CodeResultMeaning
    fruits[0]appleFirst item
    fruits[1]bananaSecond item
    fruits[2]cherryThird item

    5. Positive and Negative Indexing in Python Lists

    Python supports both positive and negative indexing.

    Positive indexing starts from the beginning of the list.

    Negative indexing starts from the end of the list.

    fruits = ["apple", "banana", "cherry", "mango"]
    
    print(fruits[0])
    print(fruits[-1])
    print(fruits[-2])

    Output:

    apple
    mango
    cherry

    Explanation:

    Here, fruits[0] gives the first item. fruits[-1] gives the last item. fruits[-2] gives the second last item.

    Negative indexing is very useful when you want to access the latest item, last record, last message, or most recent value from a list.

    IndexItem
    fruits[0]apple
    fruits[1]banana
    fruits[2]cherry
    fruits[3]mango
    fruits[-1]mango
    fruits[-2]cherry

    6. How to Change Items in a Python List

    Python lists are mutable. Mutable means you can change the list after creating it.

    You can update a list item by using its index position.

    fruits = ["apple", "banana", "mango"]
    
    fruits[1] = "orange"
    
    print(fruits)

    Output:

    ['apple', 'orange', 'mango']

    Explanation:

    In this example, "banana" is replaced with "orange". We used index 1 because "banana" is the second item in the list.

    This is useful when you want to update a value, correct a mistake, or replace old data with new data.

    7. How to Add Items to a Python List

    Python gives you different ways to add items to a list. The most common methods are append(), insert(), and extend().

    MethodUse it when
    append()You want to add one item at the end
    insert()You want to add one item at a specific position
    extend()You want to add multiple items from another list

    a) append() method:


    The append() method adds one item at the end of a list.

    Example :

    fruits = ["apple", "banana"]
    
    fruits.append("mango")
    
    print(fruits)

    Output

    ['apple',  'banana',  'mango']

    Explanation:

    In this example, first we have a list with two fruits. Then we use append("mango") to add "mango" at the end of the list.

    The append() method is used very often when data comes one by one, such as user input, log messages, file records, or API results.

    Practical Example:

    tasks = []
    
    tasks.append("Read Python list tutorial")
    tasks.append("Practice 5 examples")
    tasks.append("Revise list methods")
    
    print(tasks)

    Output:

    ['Read Python list tutorial', 'Practice 5 examples', 'Revise list methods']

    b) insert() method:


    The insert() method adds an item at a specific position in a list.

    Example:

    fruits = ["apple", "mango"]
    fruits.insert(1, "banana")
    print(fruits)

    Output

    ['apple',  'banana',  'mango']

    Explanation:

    In this example, "banana" is inserted at index 1. Before inserting, "mango" was at index 1. After inserting, "mango" moves to the next position.

    Real World Example:

    For example, if you are building a schedule app, you may want to insert a new meeting between two existing meetings.

    c) extend() Method in Python List

    The extend() method adds multiple items from another list.

    frontend_skills = ["HTML", "CSS"]
    backend_skills = ["Python", "Django"]
    
    frontend_skills.extend(backend_skills)
    
    print(frontend_skills)

    Output:

    ['HTML', 'CSS', 'Python', 'Django']

    Explanation:

    In this example, we have two lists. The first list stores frontend skills, and the second list stores backend skills. The extend() method adds all items from backend_skills into frontend_skills.

    Use append() when you want to add one item. Use extend() when you want to add many items from another list.

    8. How to Remove Items from a Python List

    Just like we can add items to a list, Python also allows us to remove items when they are no longer needed. For example, you may remove a product from a shopping cart, delete a cancelled booking, remove an inactive user, or clear temporary data from a program.

    The most common ways to remove items from a Python list are remove(), pop(), del, and clear()

    MethodUse it When
    remove()You know the value you want to remove
    pop()You want to remove an item by index or remove the last item
    delYou want to delete an item using index
    clear()You want to empty the full list

    Let us now understand each method one by one:

    a) remove() Method in Python List

    The remove() method removes the first matching value from a list.

    fruits = ["apple", "banana", "apple"]
    
    fruits.remove("apple")
    
    print(fruits)

    Output:

    ['banana', 'apple']

    Explanation:

    In this example, the list has two "apple" values. The remove() method removes only the first matching "apple". The second "apple" remains in the list.

    You should use remove() method  when you know the value you want to delete from the list.

    Important: If the value does not exist in the list, remove() will give an error.

    fruits = ["apple", "banana"]
    
    fruits.remove("mango")

    This gives an error because "mango" is not available in the list.

    Add safe pattern as shown below:

    fruits = ["apple", "banana"]
    
    if "mango" in fruits:
       fruits.remove("mango")
    else:
       print("Item not found")

    b) pop() Method in Python List

    The pop() method removes an item from a list and returns the removed item.

    If you do not provide an index, pop() removes the last item. 

    fruits = ["apple", "banana", "mango"]
    
    removed_item = fruits.pop()
    
    print(removed_item)
    print(fruits)

    Output:

    mango
    ['apple', 'banana']

    Explanation:

    In this example, pop() removes the last item, which is "mango". It also returns the removed item, so we stored it in the removed_item variable.

    Example with index

    fruits = ["apple", "banana", "mango"]
    
    removed_item = fruits.pop(1)
    
    print(removed_item)
    print(fruits)

    Output:

    banana
    ['apple', 'mango']

    Explanation:

    Here, pop(1) removes the item at index 1, which is "banana". 

    c) del Keyword in Python List

    The del keyword removes an item from a list using its index position. 

    fruits = ["apple", "banana", "mango"]
    
    del fruits[0]
    
    print(fruits)

    Output:

    ['banana', 'mango']

    Explanation:

    In this example, del fruits[0] removes the first item from the list.

    Use del when you know the index of the item you want to delete. 

    d) clear() Method in Python List

    The clear() method removes all items from a list and makes it empty. 

    fruits = ["apple", "banana", "mango"]
    
    fruits.clear()
    
    print(fruits)

    Output:

    []

    Explanation:

    In this example, clear() removes all items from the list. The list still exists, but it becomes empty.

    This is useful when you want to reset temporary data, clear search results, or empty a list before starting a new operation.

    Python List Methods Summary Table 

    MethodPurpose Example
    append() Add one item at the end items.append("apple")
    insert()Add item at a specific index items.insert(1, "apple") 
    extend()Add multiple items items.extend(["a", "b"]) 
    remove()Remove by valueitems.remove("apple") 
    pop()Remove by index or last item items.pop()
    del()Delete by indexdel items[0] 
    clear()Remove all items items.clear()

    9. Real-World Example: Managing a Shopping Cart with Python Lists

    Let’s now understand Python lists with a simple shopping cart example.

    cart = []
    
    cart.append("milk")
    cart.append("bread")
    cart.append("eggs")
    
    print("Cart after adding items:", cart)
    
    cart.remove("bread")
    
    print("Cart after removing bread:", cart)
    
    cart.insert(1, "butter")
    
    print("Final cart:", cart)

    Output:

    Cart after adding items: ['milk', 'bread', 'eggs']
    Cart after removing bread: ['milk', 'eggs']
    Final cart: ['milk', 'butter', 'eggs']

    Explanation:

    In this example, first we create an empty cart. Then we add items using append(). After that, we remove "bread" using remove(). Finally, we insert "butter" at index 1.

    This is exactly how lists are used in many beginner-level real-world programs. A list can grow, shrink, and change while your program is running.

    10. Common Mistakes Beginners Make with Python Lists

    Mistake 1: Thinking indexing starts from 1

    fruits = ["apple", "banana", "mango"]
    
    print(fruits[1])

    Output:

    banana 

    Explanation

    Many beginners think fruits[1] will return "apple", but it returns "banana" because indexing starts from 0.

    Mistake 2: Using an index that does not exist 

    fruits = ["apple", "banana"]
    
    print(fruits[2])

    Explanation:

    This will give an error because the list has only two items. The available indexes are 0 and 1.

    Mistake 3: Confusing remove() and pop() 

    fruits = ["apple", "banana", "mango"]
    
    fruits.remove("banana")
    fruits.pop()

    Explanation:

    remove() removes an item by value. pop() removes an item by index or removes the last item if no index is given.

    Mistake 4: Using append() when extend() is needed 


    numbers = [1, 2]
    numbers.append([3, 4])
    
    print(numbers)

    Output:

    [1, 2, [3, 4]]

    Explanation:

    Here, append() adds the full list [3, 4] as one item. If you want to add 3 and 4 as separate items, use extend().

    Correct Version:

    numbers = [1, 2]
    numbers.extend([3, 4])
    
    print(numbers)

    Output:

    [1, 2, 3, 4] 

    11. FAQs on Python Lists

    1. What is a list in Python?

    Ans: A list in Python is an ordered collection of items. It allows you to store multiple values inside one variable.

    2. How do you create a list in Python?

    Ans: You can create a list by placing values inside square brackets.

    fruits = ["apple", "banana", "mango"]

    3. Does Python list indexing start from 0?

    Ans: Yes, Python list indexing starts from 0. The first item is at index 0, the second item is at index 1, and so on.

    4. How do you add an item to a Python list?

    Ans: You can add one item using the append() method.

    fruits.append("orange")

    5. What is the difference between append() and insert()?

    Ans: append() adds an item at the end of the list. insert() adds an item at a specific position.

    6. What is the difference between remove() and pop()?

    Ans: remove() removes an item by value. pop() removes an item by index or removes the last item by default.

    7. Can a Python list store different data types?

    Ans: Yes, a Python list can store different data types such as strings, numbers, booleans, floats, and even other lists.

    8. Are Python lists mutable?

    Ans: Yes, Python lists are mutable. It means you can change, add, or remove items after creating the list.

    12. Final Thoughts

    Python lists are one of the most important building blocks in Python programming. If you understand how to create lists, access items, change values, add new items, and remove existing items, you are already ready to work with many real-world Python examples.

    Lists are used in automation scripts, web applications, APIs, data processing, AI projects, and interview questions. So do not just read this article once. Practice the examples, change the values, make mistakes, and try again.

    Next, you can continue with our Python Lists Advanced guide, where you will learn list slicing, sorting, list comprehension, copying lists, and advanced list methods.