目录
2.模拟“矩阵”运算,给出使用自定义函数循环和使用map函数两种方案,并计算下面的“乘法”运算
3.比较使用range函数和使用enumerate函数的时间效率
4. 比较使用itemgetter函数和使用列表推导式的时间效率
5.使用sorted函数排序,写出对a=[[20,1,3], [40,6,2], [10,5,0]]执行a_new=sorted(a)的排序过程
6.使用sorted函数排序,写出对a=[[20,1,3], [40,6,2], [10,5,0]]按第二个元素进行排序的代码
7.使用sorted函数排序,写出对a=[[20,1,3], [40,6,2], [10,5,0]]按三个元素的平均值大小进行排序的代码
8.模拟函数装饰器,对现有自定义函数加入“X时X分X秒,启动XX函数”的提示
- def my_sorted(list1,my_reverse=False):
- list2=list1[::]
- for i in range(len(list2)-1):
- for j in range(i+1,len(list2)):
- if list2[i]>list2[j] :
- list2[i],list2[j]=list2[j],list2[i]
- return list2 if not my_reverse else list2[::-1]
- list3=[4,2,4,7,5,3,8,10,-2,0,-4]
- print("原序列\n ",list3)
- print(my_sorted(list3))
- print("原序列是否变化\n ",list3)
- print(my_sorted(list3,True))
- print("原序列是否变化\n ",list3)
- str=['qwe','asd','df','my']
- print(my_sorted(str))
- print("原序列是否变化\n ",str)
- print(sorted(str))

- t1 = [[1, 2, 3], [4, 5, 6]]
- t2 = [[11, 22, 33], [10, 20, 30]]
- # map()函数
- def matix_mul(list1,list2):
- return list(map(lambda x, y:list(map(lambda i, j: i*j, x, y)), list1, list2))
- print(matix_mul(t1, t2))
- #自定义函数循环
- def matix_mul1(list1, list2):
- num=[[1,2,3],[1,2,2]]
- for i in range(0,2):
- for j in range(0,3):
- num[i][j] = t1[i][j]*t2[i][j]
- return num
- print(matix_mul1(t1,t2))
for i in range(len(seasons)) :#使用range函数控制索引
print(i, seasons[i])
for i, e in enumerate(seasons) :#使用enumerate生成器对象
print(i, e)
- import time
-
- seasons = range(100)
- time1=time.time()
- for i in range(len(seasons)) :#使用range函数控制索引
- print(i, seasons[i])
- time2=time.time()
- print(time2-time1)
- time3=time.time()
- for i, e in enumerate(seasons) :#使用enumerate生成器对象
- print(i, e)
- time4=time.time()
- print(time4-time3)
for i in range(100000):
itemgetter(0,1,3,6)(b) # ('zhang', 90)
for i in range(100000):
[b[x] for x in range(len(b)) if x in [0,1,3,6]
- from operator import itemgetter
- b=range(100)
- time3=time.time()
- for i in range(100000):
- itemgetter(0,1,3,6)(b) # ('zhang', 90)
- time4=time.time()
- print(time4-time3)
- time1=time.time()
- for i in range(100000):
- [b[x] for x in range(len(b)) if x in [0,1,3,6]]
- time2=time.time()
- print(time2-time1)
- a=[[20,1,3],[40,6,2],[10,5,0]]
- print(sorted(a))
- a=[[20,1,3],[40,6,2],[10,5,0]]
- print(sorted(a,key=lambda a:a[1],reverse=False))
- a=[[20,1,3],[40,6,2],[10,5,0]]
- print(sorted(a,key=lambda a:sum(a)/3))
- import datetime
- def fun1(fun):
- def print_fun():
- time=datetime.datetime.now()
- print(time,",启动函数fun2()")
- re=fun()
- return re
- return print_fun
- @fun1
- def fun2():
- return [i**2 for i in range(1,6)]
- print(fun2())