
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)


names = ['Tom', 'Anna', 'Zhang Wei']

print(names[0]) # Tom
print(names[-1]) # Zhang Wei


names = ['Tom', 'Anna', 'Zhang Wei']
print(f"My friend is {names[1].title()}")


friends = ['Alice', 'Bob']
print(friends[2]) # Error

motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles[0] = 'ducati'
print(motorcycles)


motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
print(motorcycles)


motorcycles = ['honda', 'yamaha']
motorcycles.insert(1, 'suzuki')
print(motorcycles)


motorcycles = ['honda', 'yamaha', 'suzuki']
del motorcycles[1]
print(motorcycles)


x = 10
del x
print(x) # NameError: name 'x' is not defined


motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.pop()
print(motorcycles) # ['honda', 'yamaha']

popped = motorcycles.pop()
print(popped) # suzuki

motorcycles = ['honda', 'yamaha', 'suzuki']
first = motorcycles.pop(0)
print(first)


motorcycles = ['honda', 'yamaha', 'ducati']
motorcycles.remove('ducati')
print(motorcycles) # ['honda', 'yamaha']


magicians = ['alice', 'david', 'carolina']

for magician in magicians:
    print(magician)



for x in [1,2,3]:
    for y in [1,2,3]:
        for z in [1,2,3]:
            print(x,y,z)



for magician in magicians:
    print(f"{magician.title()}, that was a great trick!")
    print(f"I can't wait to see your next trick, {magician.title()}.")


cars = ['bmw', 'audi', 'toyota']
cars.sort()
cars.sort(reverse=True)



cars = ['bmw', 'audi', 'toyota']
cars.reverse()
print(cars)



x = len(cars)
print(x)


players = ['a', 'b', 'c', 'd', 'e']
print(players[1:4]) # ['b', 'c', 'd']
print(players[-3:]) # ['c', 'd', 'e']

r = range(1, 6)
print(type(r)) #<class 'range'>
numbers = list(range(1, 6))
print(numbers) # [1, 2, 3, 4, 5]


r = list(range(0, 50, 5))
print(r) # [0, 5, 10, 15, 20, 25, 30, 35, 40, 45]



squares = []
for value in range(1, 11):
    squares.append(value**2)

print(squares) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]


result = []
for item in iterable:
    result.append(expression)



squares = [value**2 for value in range(1, 11)]
# same as
squares = []
for value in range(1, 11):
    squares.append(value**2)

even_squares = []
squares = [value**2 for value in range(1, 11) if value < 5]
# same as
squares = []
for value in range(1, 11):
    if value < 5:
        even_squares.append(value**2)


names = ['tom', 'anna', 'bob']
names = [name.title() for name in names]


digits = [1, 2, 3, 4, 5]
print(min(digits))
print(max(digits))
print(sum(digits))


original = ['pizza', 'pasta']
copy = original[:]
copy.append('salad')
print(original) # ['pizza', 'pasta']
print(copy) # ['pizza', 'pasta', 'salad']



original = [1,2,3]
copy = original # wrong, not a copy!
print(copy) # [1,2,3]
original.append(4)
print(copy) # [1,2,3,4] ! copy is a reference to original



