Python Data Structures: Lists, Tuples and Sets

Sequences

sentence = "I always lose at least one sock when I do laundry." 
words = sentence.split()
words
['I',
 'always',
 'lose',
 'at',
 'least',
 'one',
 'sock',
 'when',
 'I',
 'do',
 'laundry.']


sentence.split("e")
['I always los', ' at l', 'ast on', ' sock wh', 'n I do laundry.']

Lists

words
['I',
 'always',
 'lose',
 'at',
 'least',
 'one',
 'sock',
 'when',
 'I',
 'do',
 'laundry.']
type(words)
list


my_list = [1.2, 3, None, True, 'One of the lost socks']
my_list
[1.2, 3, None, True, 'One of the lost socks']
lists_of_lists = [[1,2], ['buckle', 'My', 'Shoe'], 3, 4]
lists_of_lists
[[1, 2], ['buckle', 'My', 'Shoe'], 3, 4]


my_list = [1.2, 3, None, True, 'One of the lost socks']
len(my_list)
5


len(lists_of_lists)
4
my_list
[1.2, 3, None, True, 'One of the lost socks']


my_list[1]
3


my_list[1:3]
[3, None]

Mutable vs Immutable

my_list
[1.2, 3, None, True, 'One of the lost socks']


my_list[2] = "Ta Da!"


my_list
[1.2, 3, 'Ta Da!', True, 'One of the lost socks']
lists_of_lists
[[1, 2], ['buckle', 'My', 'Shoe'], 3, 4]


lists_of_lists[1][2] = "Sandal"
lists_of_lists
[[1, 2], ['buckle', 'My', 'Sandal'], 3, 4]
sentence
'I always lose at least one sock when I do laundry.'


sentence[27:35]
'sock whe'


sentence[5] = "Z"
TypeError: 'str' object does not support item assignment

Detailed traceback: 
  File "<string>", line 1, in <module>

List Verbs

primes = [2,3,5,7,11]


primes.append(13)
primes
[2, 3, 5, 7, 11, 13]


max(primes)
13


sum(primes)
41

Lists to Dataframes

item location price
0 toothpaste London Drugs 3.99
1 apples Produce Store 4.00
2 bread Bakery 3.50


item1 = ['toothpaste', 'London Drugs', 3.99]
item2 = ['apples', 'Produce Store', 4.00]
item3 = ['bread', 'Bakery', 3.50]
column_names = ['item', 'location', 'price']

shopping_items = pd.DataFrame(data=[item1, item2, item3], columns=column_names)
shopping_items
item location price
0 toothpaste London Drugs 3.99
1 apples Produce Store 4.00
2 bread Bakery 3.50


type(shopping_items)
pandas.core.frame.DataFrame

Tuples

my_tuple = ('I', 'lose', None,  'socks', 'when', 1, 'do', 'laundry.', False)
my_tuple
('I', 'lose', None, 'socks', 'when', 1, 'do', 'laundry.', False)


type(my_tuple)
tuple
my_tuple
('I', 'lose', None, 'socks', 'when', 1, 'do', 'laundry.', False)


my_tuple[2] = 'Many'
TypeError: 'tuple' object does not support item assignment

Detailed traceback: 
  File "<string>", line 1, in <module>


my_list = list(my_tuple)
type(my_list)
list

Sets

my_set = {2, 1.0, 'Buckle my shoe'}
my_set
{1.0, 2, 'Buckle my shoe'}


my_set = {2, 1.0, 'Buckle my shoe', 1.0, 2}
my_set
{1.0, 2, 'Buckle my shoe'}
my_set
{1.0, 2, 'Buckle my shoe'}


my_set[1]
TypeError: 'set' object is not subscriptable

Detailed traceback: 
  File "<string>", line 1, in <module>


my_set.add(3)
my_set.add(4)
my_set
{1.0, 2, 3, 4, 'Buckle my shoe'}

All Together Now


Data Structure preserves order Mutable Symbol Can contain duplicates
str '' or ""
list []
tuple ()
set {}

Let’s apply what we learned!