card 1 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> type(M)
>>> len(M)
lists can contain items that are lists
list
3
card 2 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> M[1]
lists can contain items that are lists
[4, 5, 6, 7]
card 3 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> type(M[2])
lists can contain items that are lists
list (it's [8,9])
card 4 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> (M[2])[0]
M[2] is a list, so (M[2])[0] makes sense
8
card 5 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> (M[2])[-1]
M[2] is a list, so (M[2])[-1] makes sense
9
card 6 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> M[2][1]
M[2] is a list, so M[2][1] makes sense
9
card 7 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> M[1]+M[2]+M[0]
the + operator for lists is concatentation
[4, 5, 6, 7, 8, 9, 1, 2, 3]
card 8 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> M[1] is B
items in lists can be mutable objects
True
card 9 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> M[1][0] != B[0]
with double indexing like M[1][0], evaluate left to right
False -- M[1][0] is equal to B[0]
card 10 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> len(M[0]) + len(M[1]) + len(M[2])
each item of M is a list
9 (it's 3 + 4 + 2)
card 11 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> M[0][2] = 7
>>> A
M[0] is A (they are aliases of same thing)
[1,2,7]
card 12 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> M[0][0] + M[0][1] + M[0][2]
M[0] is A (they are aliases of same thing)
7
card 13 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> M[0][0] + M[1][0] + M[2][0]
each item of M is a non-empty list
13
card 14 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> M[0][1] + M[1][1] + M[2][1]
each item of M is a non-empty list
16
card 15 of 29
>>> A = [1,2,3]
>>> B = [4,5,6,7]
>>> M = [A,B,[8,9]]
>>> M[0][2] + M[1][2] + M[2][2]
each item of M is a non-empty list
IndexError (list of M[2] has only two items)
card 16 of 29
A = [1,2,3]
B = [4,5,6,7]
M = [A,B,[8,9]]
S = []
for e in M:
S = S + e
print(S)
each item of M is a non-empty list
[1, 2, 3, 4, 5, 6, 7, 8, 9]
card 17 of 29
A = [1,2,3]
B = [4,5,6,7]
M = [A,B,[8,9]]
S = 0
for e in M:
S = S + e
print(S)
each item of M is a non-empty list
Error - can't use + with number and list
card 18 of 29
A = [1,2,3]
B = [4,5,6,7]
M = [A,B,[8,9]]
S = 0
for e in M:
S = S + e[0]
print(S)
each item of M is a non-empty list
13 (equals 1 + 4 + 8)
card 19 of 29
A = [1,2,3]
B = [4,5,6,7]
M = [A,B,[8,9]]
S = 0
for e in M:
S = S + e[1]
print(S)
each item of M is a non-empty list
16 (equals 2 + 5 + 9)
card 20 of 29
A = [1,2,3]
B = [4,5,6,7]
M = [A,B,[8,9]]
S = 1
for e in M:
S = S * e[1]
print(S)
each item of M is a non-empty list
90 (equals 2 * 5 * 9)
card 21 of 29
A = [1,2,3]
B = [4,5,6,7]
M = [A,B,[8,9]]
P = 1
for e in M:
P *= e[1]
print(P)
each item of M is a non-empty list
90 (equals 2 * 5 * 9)
card 22 of 29
A = [1,2,3]
B = [4,5,6,7]
M = [A,B,[8,9]]
P = 1
for e in M:
P *= sum(e)
print(S)
each item of M is a non-empty list
918 (equals sum(M[0]) * sum(M[1]) * sum(M[2]) )
card 23 of 29
A = [1,2,3]
B = [4,5,6,7]
M = [A,B,[8,9]]
S = 0
for C in M:
P = 1
for v in C:
P = P * v
S = S + P
print(S)
S hints at sum, P hints at product
918 (equals 1*2*3 + 4*5*6*7 + 8*9)
card 24 of 29
A = [1,2,3]
B = [4,5,6,7]
M = [A,B,[8,9]]
S = 0
for i in range(len(M)):
P = 1
for v in M[i]:
P = P * v
S = S + P
print(S)
S hints at sum, P hints at product
918 (equals 1*2*3 + 4*5*6*7 + 8*9)
card 25 of 29
A = [1,2,3]
B = [4,5,6,7]
M = [A,B,[8,9]]
S = 0
for i in range(len(M)):
P = 1
for j in range(len(M[i])):
P = P * M[i][j]
S = S + P
print(S)
S hints at sum, P hints at product
918 (equals 1*2*3 + 4*5*6*7 + 8*9)
card 26 of 29
A = [1,2,3]
B = [4,5,6]
M = [A,B,[7,8,9]]
S = 0
for i in range(len(M)):
P = 1
for j in range(len(M[i])):
P = P * M[j][i]
S = S + P
print(S)
Tricky! Product changes row in each iteration
270 (equals 1*4*7 + 2*5*8 + 3*6*9)
card 27 of 29
>>> A = "once"
>>> B = "twice"
>>> M = [A,B,"thrice"]
>>> M[0][2] + M[1][2]
each item of M is a non-empty sequence (string)
'ci'
card 28 of 29
>>> A = "once"
>>> B = "twice"
>>> M = [A,B,"thrice"]
>>> M[1][1] = 'k'
>>> B
each item of M is a non-empty sequence (string)
Error! Strings are immutable
card 29 of 29
M = "one four twentyfive thousandmillion".split()
A = ""
for i in range(len(M)):
A = A + M[i][i:2*i]
print(A)
figure out M[0][0:0], then M[1][1:2], then M[2][2:4], ...
oenusa
(use browser reload to restart this problem set)