# 08 - Lists and Introducing Arrays

1. In Python - which of the following options has been declared as a list?
```#Option 1
list1={1,2,3,4,5}

#Option 2
list2=[1,2,3,4,5]

#Option 3
list3=<1,2,3,4,5]```

None of the lists shown are lists!

Option 1

Option 2

Option 3

2. What is wrong with the creation/declaration of this list?
`list2=[Adam,Eve,Cain,Abel,Seth]`

You need curly braces instead of square brackets around the strings

When you create a list of strings the strings must be in speech marks (e.g. list=["Adam","Eve"]

You do not need the square brackets around the strings

There is nothing wrong - it will work fine

3. You want the output to be 'zara' and '200'. What do you need to change?
```list1, list2 = [123, 'xyz', 'zara', 'abc'], [456, 700, 200]
print "Max value element : ", max(list1)
print "Max value element : ", max(list2)```

Change line 3 to print "Min value element : ", min(list2)

Change line 3 to: print "Min value element : ", max(list2)

Change line 2 to: print "Max value element : ", min(list2)

This cannot be done

4. You want the output to be '123','xyz','abc' - what do you need to change?
```list1, list2 = [123, 'xyz', 'zara', 'abc'], [456, 700, 200]
del list1[3]
print(list1)```

Delete line 1

Change line 1 to: list1, = [eliminate zara]

Delete line 2

Change line 2 to: del list1[2]

5. What do you need to put on line 2 in order to sort the list?
```aList = [6,2,3,7,1,4,5];
#What needs to go here to get the output of 1,2,3,4,5,6,7?
print "List : ", aList```

aList.quicksort();

sort(aList):

aList.sort();

sort().lista

6. ave you heard anyone say: "I look up at the night sky and saw an array of stars". The word array suggests â€¦..
`Note: This powerpoint from www.teachyourselfpython.com walks you through all you need to know on lists. `

a "single" item as opposed to many

"lots" of items, as opposed to just one

There is no such term in programming

a "mixed" group of items with several functions embedded

7. The following code employs the use of a list. What would the output be if you entered "Mathematics" at the input prompt?
```subjects=["Computing","Maths","History"]

def main():
course=input("Hello, what course are you finding out about?:")
if course in subjects:
print("We still have spaces on the: ", course, "course.")
else:
print("Sorry, we do not run that course")

main()```

None of the above

Error

Sorry, we do not run that course

We still have spaces on the Mathematics course

8. In a language like Python you don't 'declare' an array like you would in VB.Net but lists function in a similar way.

TRUE

FALSE

9. What is the output for the following?
```list=["Adam","Eve","Cain","Abel","Seth"]
print(list[3])```

Eve

Abel

Seth

10. What is different about the list 'matrix'?
```def main():
#1. Create a nested list (each list is a row on the matrix)
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
#2. print the matrix so it displays row by row in a square grid
for i in matrix:
print(i)

main()```

It is a straightforward list with 10 elements contained within it

It is named 'matrix' which is a peculiar name for a list

It is a list within a list. The original or main list has within it three other lists, each seperated by commas

All of the above option sare correct

11. In this 2d array (matrix) why is the output 6?
```matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[1][2])```

Because it is searching for the second list (0â€¦1) and the third element in that list (0â€¦1â€¦2), which is 6

Because 1 x 2 + 3 = 6. There are three lists within the list and the index numbers are 1 and 2

None of the above

The output is 2, not 6

12. Trial the following code. On what line are the usernames that are entered being added to the list 'usernames'?
```#TASK: Get the user to enter a list of usernames and passwords and store them in the lists

#create another empty list to store user entered passwords

def main():
register()

def register():

#********append the entered password to the passwords list that you created above

answer=input("Do you want to make another registration?")
register()
else:
registration_details()```

Line 20

Line 12

Line 18

Line 16

13. In the following python task (which you can attempt if you have the time) the third player is not assigned a weapon. Why?
```#************TASK
#ask the user to enter four names of players one after the other, and store it in a list called "players"
#create a list of four different weapons and store it in a list called "weapons"
#assign each player a weapon, by looping over both lists simulatenously. e.g Player 1: Sword; Player 2: Arrows
#Print the result
#...........SOME OF THE CODE HAS BEEN STARTED FOR YOU - THERE ARE SOME ERRORS TOO - FIX AND COMPLETE!

#1. Create an empty list
players=[]
#2. Create a list of 4 weapons
weapons=["SWORD","BELT OF TRUTH"]
#2  Create the main sub
def main():
#ask for the name of player 1
player1=input("Enter name of Player 1:")
#append the name of player 1 to the list of players
players.append(player1)
#ask for the name of player 2
player2=input("Enter name of Player 2:")
#append the name of player 2 to the list of players
players.append(player2)
#print the list of players that have been entered
player3=input("Enter name of Player 3:")
#append the name of player 2 to the list of players
players.append(player3)
#print the list of players that have been entered
print("The four players are:", players)
#assign each player a weapon and print the result(loop over both lists)
for (x,y) in zip(players,weapons):
print(x, "has been assigned the:",y)
main()```

Because the list 'weapons' only has two weapons in it

None of the above are applicable - the third player is assigned a weapon along with the first two just fine!

Because the third player is deleted along with the weapon by the for loop going over the list

Because the third player cannot be held in a list that is of size '2'

14. What one word do you need to add on line 3 for this whole mini program to work
```subjects = ['Biology', 'Chemistry', 'Physics', 'Maths', 'Computing', 'English']

for i in range((subjects)):
print('Room[',i,'] =', subjects[i])

what_subject = input("What Subject do you have next?: ")
print("That subject is assigned to the room: ", subjects.index(what_subject))```

All of the above are valid options

for i in range(i(subjects)):

for i in range(len(subjects)):

for i in range(3(subjects)):

15. What does this code do?
```import random
weapons_list = ['sword', 'belt', 'armour', 'arrows', 'shield']
print(random.choice(weapons_list))```

Generates a list of random numbers (using the random.choice feature) and prints the whole list

Generates and prints a random item (weapon) from the list

None of the above

Generates a list of random numbers and assigns them to a weapon