100+Python挑战性编程练习系列 -- day 20
Question 77
请编写一个程序来打印去掉[5,6,77,45,22,12,24]中偶数后的列表。
def isEven(n): return n%2!=0 li = [5,6,77,45,22,12,24] lst = list(filter(isEven,li)) print(lst) li = [5,6,77,45,22,12,24] lst = list(filter(lambda n:n%2!=0,li)) print(lst) Question 78
利用列表理解,请编写一个程序,在[12,24,35,70,88,120,155]中删除可被5和7整除的数字后打印列表。
li = [12,24,35,70,88,120,155] li = [x for x in li if x % 35!=0] print(li) Question 79
使用列表解析,请编写一个程序,在[12,24,35,70,88,120,155]中删除第0,2,4,6个数字后打印列表。
li = [12,24,35,70,88,120,155] li = [li[i] for i in range(len(li)) if i%2 != 0 and i <= 6] print(li) orig_lst = [12,24,35,70,88,120,155] indices = [0, 2, 4, 6] new_list = [i for (j, i) in enumerate(orig_lst) if j not in indices] print(new_list) Question 80
使用列表解析,请编写一个程序,在[12,24,35,70,88,120,155]中删除第2 - 4个数字后打印列表。
li = [12,24,35,70,88,120,155] li = [li[i] for i in range(len(li)) if i < 3 or i > 4] print(li) orig_list = [12,24,35,70,88,120,155] new_list = [i for (j, i) in enumerate(orig_list) if j not in range(1,4)] print(new_list) lst = [12,24,35,70,88,120,155] print([i for i in lst if lst.index(i) not in range(2,5)]) Question 81
通过使用列表解析,请编写一个程序,生成一个358的三维数组,每个元素为0。
array = [[[0 for col in range(8)] for col in range(5)] for row in range(3)] print(array)