一、列表的排序
nums = [1,2,3,5,4,7,87,4,9,56,44,7,5]
nums.sort()#默认从小到大排序
nums#结果为:[1, 2, 3, 4, 4, 5, 5, 7, 7, 9, 44, 56, 87]
nums = [1,2,3,5,4,7,87,4,9,56,44,7,5]
nums.sort(reverse=True)#从大到小排序
nums#结果为:[87, 56, 44, 9, 7, 7, 5, 5, 4, 4, 3, 2, 1]
nums = [1,2,3,5,4,7,87,4,9,56,44,7,5]
nums.reverse()#反转
nums#结果为:[5, 7, 44, 56, 9, 4, 87, 7, 4, 5, 3, 2, 1]
二、字典排序
如果对字典进行排序需要指出按哪个key排序,sort方法里面的参数为key=lambda x:x['age']
第一个x,此时会为infors列表中的每个键值对,冒号后面的x[‘age’]表示通过age这个键(key)
所对应的值(value)
所排序,说白了就是按照age对应的值所排序(sort默认从小到大排序)。sort的有关参数可以参照上面的例子进行不同的排序方式进行排序。
当然,这里也不仅仅局限于age这个键的排序,也可以通过name这个键进行排序,只不过name对应的值是字符串,最终的结果会通过ASCII码进行比较排序输出。
infors = [{"name":"jiaju","age":32},{"name":"beyond","age":21},{"name":"shirong","age":15},{"name":"guanzhong","age":40}]
infors.sort(key=lambda x:x['age'])
infors#结果为:
'''
[{'age': 15, 'name': 'shirong'},{'age': 21, 'name': 'beyond'},{'age': 32, 'name': 'jiaju'},{'age': 40, 'name': 'guanzhong'}]
'''
三、匿名函数当参数使用
当你想实现两个数相加,又想实现两个数相乘,还行实现两个数相减等一系列操作时,当然你可以多定义几个函数即可。这里使用匿名函数来实现,只需要改变lambda中的表达式即可通过一个函数实现用户想要的操作,即匿名函数充当实参。
def beyond(a,b,func):result = func(a,b)return resultnum1 = beyond(21,22,lambda x,y:x+y)
num2 = beyond(21,22,lambda x,y:x*y)
num3 = beyond(21,22,lambda x,y:x-y)print(num1)#结果为:43
print(num2)#结果为:462
print(num3)#结果为:-1
四、验证下Python是动态语言
所谓的静态语言就是需要先确定功能再去执行
而动态语言是当程序写完之后,不确定加了什么东西,真正运行的那一刹那才确定你要执行什么,这就是动态语言。
C是静态语言,程序当前需要调用什么是很明确的,编译什么也都确定,在某个地方需要调用什么也是明确的,已经写好的。
而Python是动态语言,如果没有出现语法错误,将来在正真执行的时候,当什么时候执行,什么时候才会定义某些东西。
def beyond(a,b,func):result = func(a,b)return resultfunc_new = eval(input("please input an anonymous function:"))#输入内容为:please input an anonymous function:lambda x,y:x+y
num = beyond(21,22,func_new)
print(num)#结果为:43