Paradoxical想对列表里的元素进行排序,但是不知道咋办,于是就去询问小哥哥。
我:小哥哥,我想对列表里的元素进行排序,要怎么办呢?
惨绿青年:调用list.sort()就行了。self是列表本身,这个不用填。key是用来作为排序根据的函数,该函数会应用于列表中的所有元素,并按照返回的结果进行排序。reverse是按相反的顺序来排序,默认为False,即按正常的顺序来排序。这个方法会直接修改列表。如果不想对原列表进行修改,想返回一个排序后的列表可以用sorted(),参数是差不多的。
我:原来是酱紫,我懂了。但是有时候排序只需要使用一次,这样的话写一个函数代码是不是有点麻烦鸭?
惨绿青年:这时候就要使用到匿名函数了。
我:啥是匿名函数鸭?
惨绿青年:匿名函数就是用lambda关键字定义的函数,但是没有名字。匿名函数的定义方式也和普通函数不一样,代码比较简洁,所以多作为参数去使用。下图的x就是形式参数,x+1就是表达式,也就是函数体,该函数会返回x+1的计算结果。
惨绿青年:匿名参数要调用的话可以赋值给一个变量,但这样的话就没用必要定义匿名函数。因为匿名参数多用于一次性的场景。例如对列表排序。
惨绿青年:上图对列表排序的匿名函数将传入的元素用split()分开取出数字部分,然后把字符串转为数字,按照这个规则来排序。匿名函数还能应用于高阶函数filter()、map()。filter()是过滤函数,用来过滤符合规则的元素。map()是对可迭代对象的每一个参数使用函数。这两个函数都会返回新的可迭代对象。
我:学到了学到了~