# simply function
old_list = ['this','is','a','man']
new_list = []
for item in old_list:
if len(item) > 2:
new_list.append(item[::-1])
print(new_list)
# list comprehension
# new_list = [expression action, for loop, filter]
new_list = [item[::-1] for item in old_list if len(item) > 2]
print(new_list)
def temp():
new_list = []
for i in range(10):
new_list.append(i**2)
return new_list
x = [i for i in range(1,11)]
print(x)
# gen a list of numbers
new_list = []
for i in range(10):
new_list.append(i)
print(new_list)
# list comprehension way
# [i] <= [for i in range(10)]
new_list = [i for i in range(10)]
print(new_list)
new_list = [i for i in "hello"]
print(new_list)
# gen a list of odd numbers
new_list = []
for i in range(10):
if (i % 2):
new_list.append(i)
print(new_list)
x = [i for i in range(10) if i % 2]
print(x)
# list comprehension way
new_list = [i for i in range(10) if i % 2]
print(new_list)
# nested for loop, we can copy the for loop order
l = []
for i in range(5):
for j in range(5):
for k in range(5):
l.append((i,j,k))
print(l)
l = [(i,j,k) for i in range(5) for j in range(5) for k in range(5)]
print(l)
# filter in between for loop
l = []
for i in range(5):
for j in range(5):
for k in range(5):
if i == j:
l.append((i,j,k))
print(l)
l = [(i,j,k) for i in range(5) for j in range(5) for k in range(5) if i == j]
print(l)
l = [(i,j,k) for i in range(5) for j in range(5) if i == j for k in range(5)]
print(l)
# ex 1
l = []
for i in range(1,6):
if i % 2 == 0:
for j in range(1,6):
if j % 3 == 0:
l.append((i,j))
print(l)
x = [(i,j) for i in range(1,6) if i % 2 == 0 for j in range(1,6) if j % 3 == 0]
print(x)
# ex 2
l = []
for i in range(1,6):
for j in range(1,6):
if i % 2 == 0:
if j % 3 == 0:
l.append((i,j))
print(l)
x = [(i,j) for i in range(1,6) for j in range(1,6) if i % 2 == 0 and j % 3 == 0]
print(x)
print("ex 3")
# ex 3
for i in range(1,6):
for j in range(1,6):
if i % 2 == 0 and j % 3 == 0:
l.append((i,j))
# l = [(i,j) for i in range(1,6) if j % 3 == 0 for j in range(1,6) if i % 2 == 0] # j is undefined