Tutorials Logic
Tutorials Logic, IN info@tutorialslogic.com
Navigation
Home About Us Contact Us Blogs FAQs
Tutorials
All Tutorials
Services
Academic Projects Resume Writing Website Development
Practice
Quiz Challenge Interview Questions Certification Practice
Tools
Online Compiler JSON Formatter Regex Tester CSS Unit Converter Color Picker
Compiler Tools

Python Lists Tutorial - append, extend, remove, sort Methods

What is a List?

A list is an ordered, mutable collection that can hold items of any data type. Lists are one of the most used data structures in Python.

  • Ordered - items maintain insertion order
  • Mutable - you can add, remove, or change items
  • Allows duplicates
  • Can hold mixed data types

Creating a List

Creating Lists
empty = []
numbers = [1, 2, 3, 4, 5]
fruits = ["apple", "banana", "mango"]
mixed = [1, "hello", 3.14, True, None]
matrix = [[1, 2, 3], [4, 5, 6]]
chars = list("Python")   # ['P', 'y', 't', 'h', 'o', 'n']
print(len(fruits))       # 3
print(type(fruits))      # <class 'list'>

Accessing Elements (Indexing & Slicing)

Lists use zero-based indexing. Negative indexes count from the end.

Indexing & Slicing
fruits = ["apple", "banana", "orange", "grapes", "mango"]
print(fruits[0])    # apple
print(fruits[2])    # orange
print(fruits[-1])   # mango  (last item)
print(fruits[-2])   # grapes
# Slicing: list[start:stop:step]
print(fruits[1:3])   # ['banana', 'orange']
print(fruits[:3])    # ['apple', 'banana', 'orange']
print(fruits[2:])    # ['orange', 'grapes', 'mango']
print(fruits[::2])   # ['apple', 'orange', 'mango']
print(fruits[::-1])  # reversed list
# Nested list
matrix = [[1, 2, 3], [4, 5, 6]]
print(matrix[1][2])  # 6

Updating a List

Updating Lists
fruits = ["apple", "banana", "orange"]
fruits[1] = "mango"          # change single item
fruits.append("pear")        # add to end
fruits.insert(1, "cherry")   # insert at index 1
fruits.extend(["fig", "plum"]) # add multiple items
# Concatenate
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b    # [1, 2, 3, 4, 5, 6]
print([0] * 5)  # [0, 0, 0, 0, 0]

Deleting Elements

Deleting Elements
fruits = ["apple", "banana", "orange", "banana", "mango"]
fruits.remove("banana")  # removes first occurrence
last = fruits.pop()      # removes and returns last item
item = fruits.pop(1)     # removes and returns item at index 1
nums = [10, 20, 30, 40, 50]
del nums[2]              # delete by index
del nums[1:3]            # delete a slice
nums.clear()             # remove all items

Looping Through a List

Iterating Lists
fruits = ["apple", "banana", "mango"]
for fruit in fruits:
    print(fruit)
# With index
for i, fruit in enumerate(fruits):
    print(f"{i}: {fruit}")
# List comprehension
upper = [f.upper() for f in fruits]
print(upper)   # ['APPLE', 'BANANA', 'MANGO']
# Filter with comprehension
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
evens = [n for n in numbers if n % 2 == 0]
print(evens)   # [2, 4, 6, 8]

List Methods

MethodDescription
append(x)Add item to end
insert(i, x)Insert at index i
extend(iterable)Add all items from iterable
remove(x)Remove first occurrence of x
pop(i)Remove & return item at index (default: last)
clear()Remove all items
index(x)Return index of first occurrence
count(x)Count occurrences of x
sort()Sort in place
reverse()Reverse in place
copy()Return shallow copy
Methods in Action
nums = [3, 1, 4, 1, 5, 9, 2, 6]
print(nums.count(1))   # 2
print(nums.index(5))   # 4
nums.sort()
print(nums)   # [1, 1, 2, 3, 4, 5, 6, 9]
nums.reverse()
print(nums)   # [9, 6, 5, 4, 3, 2, 1, 1]
# sorted() returns new list
original = [3, 1, 4, 1, 5]
sorted_list = sorted(original)
print(original)     # [3, 1, 4, 1, 5]  unchanged
print(sorted_list)  # [1, 1, 3, 4, 5]
# Sort by key
words = ["banana", "apple", "cherry", "fig"]
words.sort(key=len)
print(words)   # ['fig', 'apple', 'banana', 'cherry']
# Copy vs reference
a = [1, 2, 3]
b = a.copy()   # independent copy
b.append(4)
print(a)       # [1, 2, 3]  unchanged

Key Takeaways
  • Python lists are ordered, mutable, and allow duplicate values.
  • Use append() to add one item, extend() to add multiple, insert() for a specific position.
  • List slicing syntax: list[start:stop:step] - all parameters are optional.
  • List comprehensions are faster and more Pythonic than traditional for loops.
  • Use copy() or list[:] to create a shallow copy - avoid aliasing bugs.
  • sorted() returns a new list; list.sort() modifies in place.
Common Mistakes to Avoid
WRONG list2 = list1
RIGHT list2 = list1.copy()
Assignment creates a reference, not a copy. Both variables point to the same list.
WRONG for i in range(len(mylist)): print(mylist[i])
RIGHT for item in mylist: print(item)
Iterate directly over the list - it is cleaner and more Pythonic.
WRONG mylist.append([1,2,3])
RIGHT mylist.extend([1,2,3])
append() adds the entire list as one element. extend() adds each element individually.

Frequently Asked Questions

Ready to Level Up Your Skills?

Explore 500+ free tutorials across 20+ languages and frameworks.