0% found this document useful (0 votes)
9 views

004 Python-Data-Structures-Lists

Lists are mutable ordered sequences that can contain elements of any data type. Elements within lists can be accessed by their integer index and lists support common operations like append, pop, sort, and reverse. Lists can also be nested to create multi-dimensional structures.

Uploaded by

Bhavesh Jha
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

004 Python-Data-Structures-Lists

Lists are mutable ordered sequences that can contain elements of any data type. Elements within lists can be accessed by their integer index and lists support common operations like append, pop, sort, and reverse. Lists can also be nested to create multi-dimensional structures.

Uploaded by

Bhavesh Jha
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Python Data Structures

Lists, Dictionaries and Tuples


Lists

• A list is an ordered sequence of information


• Uses [ ] is the notation to define an empty list
• my_list = []
• Typically list elements are homogeneous data – of all one type
• List data elements can be modified in-place.
• A data type is mutable if it can be modified after creation.
Example Lists

my_list = [] #empty list


• A list can be accessed via a specific index.
some_list = [3.141, 7, “bob”, [9,10]] • 0-indexing is a scheme whereby we start at 0 and
len(num_list) #Outputs 4. go to length – 1.
some_list[0] → 3.141 • E.g, 0, 1, 2, 3 in this case.
• We can use variables as the index value.
some_list[1] + 10 → 17
• If we go beyond the length of our list, we get an
some_list[3] → [9,10] another list error.
some_list[7] → ERROR
i = 3
some_list[i-1] → “bob” as i-1 is 2.
Nested Lists
• As Lists can contain any data object, thus we can have a list of list (or list of lists of
lists… you get the point). These are called Nested Lists
L = [ [7,8], [9,10] ]
L[0] = [7,8] → The value of L[0] is the entire list, [7,8]
L[1] = [9,10]
L[0][0] gives 7. L[0][1] gives 8. Outer, then inner.
• Avoid iterating over a list and mutating it at the same time.
• E.g. removing items whilst going through, leads to errors.
• Show example of this in action. List changes length, but python already
decided it’s going to count from 5 → 0, and suddenly the list is shorter!
List - Mutability
• Mutability allows us to modify data in-place. Why is this important?
• If we have a really large list, it means we don’t need to recreate it!
• Imagine if we had to copy 10GB List to change 1 value.
sounds = [“snap”, “crackle”, “bang”]
print(sounds[2]) # bang… doesn’t sound right
sounds[2] = “pop”
print(sounds[2]) # pop. Much better.

• Variable sounds still points to the exact same data object.


[“snap”, “crackle”, “pop”].

• It does not rebind to a new object, leaving the old in memory.


Iterating over Lists
• We can use a for loop to iterate over a list. E.g. summation
fave_n = [2, 3, 5, 7, 11]
sum = 0 sum = 0
for i in range( len(fave_n) ): for i in fave_n:
sum = sum + fave_n[i] #i-th element sum = sum + i
print(sum) print(sum)

• Remember range ‘stop’ is exclusive. 0-Indexing goes from 0 → n – 1.


• We can iterate over ‘iterable’ data objects directly.
• No need to iterate over index numbers, then index.
• Can just use the element!
Operations on Lists : append and methods
• What if we wanted to add elements, or remove them?
fave_n = [2, 3, 5, 7, 11]
fave_n[5] = “a new item” → index out of bounds!

• We can append items to the end with .append( element )


fave_n.append(97)
print(fave_n) → [2,3,5,7,11,97]

• What is .append?
• It is a method for that object.
• Using object.the_thing() is a way we can invoke that.
Operations on Lists : concatenation
• What if we have two lists of numbers
• We can concatenate two lists together.
fave_n = [2, 3, 5, 7, 11]
rob_faves = [1,6,4,3,8]
our_faves = fave_n + rob_faves
#→ [ 2, 3, 5, 7, 11, 1, 6, 4, 3, 8 ]
# fave_n and rob_faves are unchanged!
fave_n.extend(rob_faves)
# Mutates fave_n by attaching 1, 6, 4, 3, 8
Operations on Lists : del, pop & remove
• Deleting items at specific indices with del()
fave_n = [2, 3, 5, 7, 11]
del(fave_n[2]) → [2,3,7,11]

• Remove element at the end with .pop(), will return the removed element.
removed_item = fave_n.pop()
print(removed_item) → 11

• Remove a specific element itself with .remove(element)


• If not in list, gives an error.
fave_n = [2, 3, 5, 7, 11]
• If multiple, remove only first one. fave_n.remove(7)
→ [2,3, 5, 11]
Operations on Lists : Sort & Reverse

• Other operations on Lists:


• Sort the list with sorted( alist ) or alist.sort()
alist = [2, 5, 3, 11, 7]
sorted(alist) → [2,3,5,7,11] # Returns new list
alist.sort() → Mutates the original list

• Reverse a list with .reverse()


alist.reverse() → Mutates in place [11,7,5,3,2]

You might also like