LISTS IN PYTHON

Table of Contents

  • About the Dataset
  • Lists
  • Quiz

  • Estimated Time Needed: 15 min

    About the Dataset

    Imagine you received many music recommendations from your friends and compiled all of the recommendations into a table, with specific information about each movie.

    The table has one row for each album and several columns:

    • artist - Name of the artist
    • album - Name of the album
    • released_year - Year the album was released
    • length_min_sec - Length of the album (hours,minutes,seconds)
    • genre - Genre of the album
    • music_recording_sales_millions - Music recording sales (millions in USD) on SONG://DATABASE
    • claimed_sales_millions - Album's claimed sales (millions in USD) on SONG://DATABASE
    • date_released - Date on which the album was released
    • soundtrack - Indicates if the album is the movie soundtrack (Y) or (N)
    • rating_of_friends - Indicates the rating from your friends from 1 to 10

    The dataset can be seen below:

    <table font-size:xx-small style="width:25%"> Artist Album Released Length Genre Music recording sales (millions) Claimed sales (millions) Released Soundtrack Rating (friends) Michael Jackson Thriller 1982 00:42:19 Pop, rock, R&B 46 65 30-Nov-82 10.0 AC/DC Back in Black 1980 00:42:11 Hard rock 26.1 50 25-Jul-80 8.5 Pink Floyd The Dark Side of the Moon 1973 00:42:49 Progressive rock 24.2 45 01-Mar-73 9.5 Whitney Houston The Bodyguard 1992 00:57:44 Soundtrack/R&B, soul, pop 26.1 50 25-Jul-80 Y 7.0 Meat Loaf Bat Out of Hell 1977 00:46:33 Hard rock, progressive rock 20.6 43 21-Oct-77 7.0 Eagles Their Greatest Hits (1971-1975) 1976 00:43:08 Rock, soft rock, folk rock 32.2 42 17-Feb-76 9.5 Bee Gees Saturday Night Fever 1977 1:15:54 Disco 20.6 40 15-Nov-77 Y 9.0 Fleetwood Mac Rumours 1977 00:40:01 Soft rock 27.9 40 04-Feb-77 9.5 </table></font>


    Lists

    We are going to take a look at lists in Python. A list is a sequenced collection of different objects such as integers, strings, and other lists as well. The address of each element within a list is called an 'index'. An index is used to access and refer to items within a list.

    Representation of a list

    To create a list, type the list within square brackets [ ], with your content inside the parenthesis and separated by commas. Let’s try it!

    
    
    In [1]:
    L = ["Michael Jackson" , 10.1,1982]
    L
    
    
    
    
    Out[1]:
    ['Michael Jackson', 10.1, 1982]

    We can use negative and regular indexing with a list :

    Representation of a list

    
    
    In [2]:
    print('the same element using negative and positive indexing:\n Postive:',L[0],
    '\n Negative:' , L[-3]  )
    print('the same element using negative and positive indexing:\n Postive:',L[1],
    '\n Negative:' , L[-2]  )
    print('the same element using negative and positive indexing:\n Postive:',L[2],
    '\n Negative:' , L[-1]  )
    
    
    
    
    the same element using negative and positive indexing:
     Postive: Michael Jackson 
     Negative: Michael Jackson
    the same element using negative and positive indexing:
     Postive: 10.1 
     Negative: 10.1
    the same element using negative and positive indexing:
     Postive: 1982 
     Negative: 1982
    

    Lists can contain strings, floats, and integers. We can nest other lists, and we can also nest tuples and other data structures. The same indexing conventions apply for nesting:

    
    
    In [11]:
    temp = [ "Michael Jackson", 10.1,1982,[1,2],("A",1) ]
    for i in range(0, len(temp)):
        print(temp[i], temp[-len(temp)+i])
    
    
    
    
    Michael Jackson Michael Jackson
    10.1 10.1
    1982 1982
    [1, 2] [1, 2]
    ('A', 1) ('A', 1)
    

    We can also perform slicing in lists. For example, if we want the last two elements, we use the following command:

    
    
    In [12]:
    L = [ "Michael Jackson", 10.1,1982,"MJ",1]
    L
    
    
    
    
    Out[12]:
    ['Michael Jackson', 10.1, 1982, 'MJ', 1]

    Representation of a list

    
    
    In [13]:
    L[3:5]
    
    
    
    
    Out[13]:
    ['MJ', 1]

    We can use the method "extend" to add new elements to the list:

    
    
    In [14]:
    L = [ "Michael Jackson", 10.2]
    L.extend(['pop',10])
    L
    
    
    
    
    Out[14]:
    ['Michael Jackson', 10.2, 'pop', 10]

    Another similar method is 'appended'. If we apply 'appended' instead of 'extended', we add one element to the list:

    
    
    In [15]:
    L = [ "Michael Jackson", 10.2]
    L.append(['pop',10])
    L
    
    
    
    
    Out[15]:
    ['Michael Jackson', 10.2, ['pop', 10]]

    Each time we apply a method, the list changes. If we apply "extend" we add two new elements to the list. The list L is then modified by adding two new elements:

    
    
    In [16]:
    L = [ "Michael Jackson", 10.2]
    L.extend(['pop',10])
    L
    
    
    
    
    Out[16]:
    ['Michael Jackson', 10.2, 'pop', 10]

    If we append the list ['a','b'] we have one new element consisting of a nested list:

    
    
    In [17]:
    L.append(['a','b'])
    L
    
    
    
    
    Out[17]:
    ['Michael Jackson', 10.2, 'pop', 10, ['a', 'b']]

    As lists are mutable, we can change them. For example, we can change the first element as follows:

    
    
    In [18]:
    A = ["disco",10,1.2]
    print('Before change:', A)
    A[0] = 'hard rock'
    print('After change:', A)
    
    
    
    
    Before change: ['disco', 10, 1.2]
    After change: ['hard rock', 10, 1.2]
    

    We can also delete an element of a list using the del command:

    
    
    In [19]:
    print('Before change:', A)
    del(A[0])
    print('After change:', A)
    
    
    
    
    Before change: ['hard rock', 10, 1.2]
    After change: [10, 1.2]
    

    We can convert a string to a list using 'split'. For example, the method split translates every group of characters separated by a space into an element in a list:

    
    
    In [20]:
    'hard rock'.split()
    
    
    
    
    Out[20]:
    ['hard', 'rock']

    We can use the split function to separate strings on a specific character. We pass the character we would like to split on into the argument, which in this case is a comma. The result is a list, and each element corresponds to a set of characters that have been separated by a comma:

    
    
    In [21]:
    'A,B,C,D'.split(',')
    
    
    
    
    Out[21]:
    ['A', 'B', 'C', 'D']

    When we set one variable B equal to A; both A and B are referencing the same list in memory :

    
    
    In [22]:
    A = ["hard rock",10,1.2]
    B = A
    print('A:', A)
    print('B:', B)
    
    
    
    
    A: ['hard rock', 10, 1.2]
    B: ['hard rock', 10, 1.2]
    

    Initially, the value of the first element in B is set as hard rock. If we change the first element in A to 'banana', we get an unexpected side effect. As A and B are referencing the same list, if we change list A, then list B also changes. If we check the first element of B we get banana instead of hard rock:

    
    
    In [23]:
    print('Before changing A[0], B[0] is ',B[0])
    A[0] = "banana"
    print('After changing A[0], A[0] is ',A[0])
    print('After changing A[0], B[0] is ',B[0])
    
    
    
    
    Before changing A[0], B[0] is  hard rock
    After changing A[0], A[0] is  banana
    After changing A[0], B[0] is  banana
    

    This is demonstrated in the following figure:

    You can clone list A by using the following syntax:

    
    
    In [24]:
    B = A[:]
    B
    
    
    
    
    Out[24]:
    ['banana', 10, 1.2]

    Variable B references a new copy or clone of the original list; this is demonstrated in the following figure:

    Now if you change A, B will not change:

    
    
    In [25]:
    print('Before changing A[0], B[0] is ',B[0])
    A[0] = "apple"
    print('After changing A[0], A[0] is ',A[0])
    print('After changing A[0], B[0] is ',B[0])
    
    
    
    
    Before changing A[0], B[0] is  banana
    After changing A[0], A[0] is  apple
    After changing A[0], B[0] is  banana
    
    
    
    In [ ]:
    
    

    Quiz

    Create a list 'a_list' , with the following elements 1, “hello”, [1,2,3 ] and True.

    
    
    In [26]:
    a_list = [1, "hello", [1, 2, 3], True]
    a_list
    
    
    
    
    Out[26]:
    [1, 'hello', [1, 2, 3], True]
    ``` a_list=[1, 'hello', [1,2,3 ] , True] a_list ```

    Find the value stored at index 1 of 'a_list'.

    
    
    In [27]:
    a_list[1]
    
    
    
    
    Out[27]:
    'hello'
    ``` a_list[1] ```

    Retrieve the elements stored at index 1 and 2 of 'a_list'.

    
    
    In [28]:
    a_list[1:3]
    
    
    
    
    Out[28]:
    ['hello', [1, 2, 3]]

    4) Concatenate the following lists A=[1,'a'] abd B=[2,1,'d']:

    
    
    In [32]:
    A = [1, 'a']
    print(A)
    B = [2, 1, 'd']
    print(B)
    print(A + B)
    
    
    
    
    [1, 'a']
    [2, 1, 'd']
    [1, 'a', 2, 1, 'd']
    

    A=[1,'a'] 
    B=[2,1,'d']
    A+B

    About the Authors:

    Joseph Santarcangelo has a PhD in Electrical Engineering, his research focused on using machine learning, signal processing, and computer vision to determine how videos impact ]human cognition. Joseph has been working for IBM since he completed his PhD.


    Copyright © 2017 cognitiveclass.ai. This notebook and its source code are released under the terms of the MIT License.​

    
    
    In [ ]: