8.5. Nested Recap

8.5.1. What is an Object?

  • Basic types are objects

  • Iterable are objects too

  • Everything is an object

  • tuple.mro()

  • list.mro()

  • set.mro()

tuple.mro()
[<class 'tuple'>, <class 'object'>]
list.mro()
[<class 'list'>, <class 'object'>]
set.mro()
[<class 'set'>, <class 'object'>]

8.5.2. Append vs. Extend

from pprint import pprint
data = [1, 2, 3]
data.extend([4, 5, 6])

data
[1, 2, 3, 4, 5, 6]
data = [1, 2, 3]
data.append([4, 5, 6])

data
[1, 2, 3, [4, 5, 6]]

Append elements using list.append():

result = [
    ('Mark', 'Watney'),
    ('Melisa', 'Lewis'),
    ('Rick', 'Martinez'),
]

data = ('Alex', 'Vogel')
result.append(data)

pprint(result, width=30)
[('Mark', 'Watney'),
 ('Melisa', 'Lewis'),
 ('Rick', 'Martinez'),
 ('Alex', 'Vogel')]

Append elements using list.extend():

result = [
    ('Mark', 'Watney'),
    ('Melisa', 'Lewis'),
    ('Rick', 'Martinez'),
]

data = ('Alex', 'Vogel')
result.extend(data)

pprint(result, width=30)
[('Mark', 'Watney'),
 ('Melisa', 'Lewis'),
 ('Rick', 'Martinez'),
 'Alex',
 'Vogel']

8.5.3. Use Case - 1

  • One dimensional (1D) structure - vector

data = [1, 2, 3]

Is equivalent to:

obj1 = 1
obj2 = 2
obj3 = 3

data = [obj1, obj2, obj3]

8.5.4. Use Case - 2

  • Two dimensional (2D) structure - matrix

data = [
     [1, 2, 3],
     [4, 5, 6],
     [7, 8, 9],
]

Is equivalent to:

obj1 = [1, 2, 3]
obj2 = [4, 5, 6]
obj3 = [7, 8, 9]

data = [obj1, obj2, obj3]

8.5.5. Assignments