00:00
来看这solid的叫排序函数,它是用来排序的,听好啊,它是排序的,排序在你未来的工作里面绝对是有用的,并且用到的时候基本上都会很头等啊,只要用到排序的时候基本上都非常烦啊,非常烦,功能不是很牛逼,但是呢,需求就给你摆在那啊,还很难做啊。排序它的语法看好了它的语法,第一个参数要给一个aable,要给一个可迭代对象,那么给一个可代对象之后,后面key等于now revers等于false,后面这俩咱先不看它现在第一个参数给一个A就可以进行工作了,因为后面两个是有默认值的,是有默认值的,所以我们直接可以给个可可见对象就可以了,那么看一下给个见加对象会成什么样的一个效果啊,来在这右键新建一个I be02203啊在这呢,我们去来一个可见对象啊,比方说往里面是装。
01:00
弄一些个数据啊,五七六十二,一十三九十八五,好了,一个随便的来这么一个列表啊,然后这列表想要排序的话,我们之前是学过一个东西是可以排序的,什么呢?list.sort对不对,这sort可以排序对吧?然后我们可以直接去打印list的,看下效果走,你看着帮你正常的一个排序,还记住这个吗?有印象吗?不用完全记住,有印象就可以啊,S排序,那么这个函数听好了,现在访问的sortt是谁的呢?是list里面的一个方法,那么也就是说你现在只能对list用,只能对list,如果你来个其他东西,那对不起,它不能搞定啊,不能给你搞定,那现在你想去用另外一种方式去排序的话,你就要用到sorted,那那soed sorted第一个参数就是一个可迭代对象,我可以把这list装进去,装完了之后。
02:00
把它打印一下,第四是吧,这写法跟上边差不多吧,对吧,就换了个个,但是。你弹拍没动没动,为啥没动,为啥没动,为啥打累死他兄弟了,没有印为什么没动到了我上面也这样的,我然后我直接打印的排序了原看啥说一下不一样啊,不一样的说看list点这是list自身的一个方法,它是对自身进行一个修改,一个处理,因为本身list是可变的,记着吧,它是可变的,可以去修改,但是S这属于谁呢?这是内置函数,这是内置函数它会干嘛呢?返回给你一个什么呢?新列表,对吧?这种坑咱们踩过很多了,有印象吗?踩过很多了,最明显的还记得吗?这个点from字列表,还记得这玩意吧,对吧?这是干嘛,是不是也返回。
03:07
新的东西对吧,好了,现在它返回一个新列表,注意新列表是被排了序的啊,排序的十倍排序的,那看一下来一个LL来打印LL走你看效果啊,这个排了,我把这个注掉啊注掉。所以看到这就给你经过了一个排序啊,一个排序,现在这个排序是升序啊,15679,就是从小到大是升序,那叫降序,怎么玩呢?逗号给第二个参数叫reverse reverse等于啥呢?等于two啊,Revers什么意思?是反着倒着对不对?倒着的给个处,那就是正了,让它倒着对吧?来走你跑一下就是倒着的是吧,倒着去,那么这个地方那两个参数讲完了,一个是给第一个可迭代对象,第二个给的是什么?Reward,你到底是否要翻转啊,或者是正据倒叙这种东西,然后中间还有这么一个参数叫啥呢?叫做K,叫做KK在这里呢很关键,K在这里很关键,K代表的是排序规则,排序规则那么这里面当然了,你的K需要给一个函数,给一个函数,并且在函数里面你必须。
04:28
需要返回一个数字,你要返回一个数字,这个数字用来进行排序,这个数字用来进行排序,看到在society的内部会将可迭代对象就给你list,把list里边的每一个元素拿出来扔给你这个函数扔进去之后,函数最终算出来一个结果,它根据这结果进行排序啊,很绕对吧?很绕,看一个来看一个啊,我把这个读掉,我只是先给你说下概念啊,用一下就知道了。看着啊,给啊列表排序要求根据字符串的度进行排序,根据字串的长度进行排序,看着啊,我来一个list,来两个人名,来两个人名长度不一样,比方说来个谁呀,大秧歌。
05:28
尼古拉斯好,尼古拉斯啊,再来赵四是吧,尼古拉斯赵四,亚洲舞王来象牙山第一盆啊,刘能啊,啊,象牙山第二盆谁了广坤是吧?然后再来一个谢大脚,看着这些个字符串长短不一对吧?长短不一,现在我要求你按照字符串的长度进行排序掉,你默认是没法排的,你默认是没法排的,那么想要按照这种方式排,你首先得写出来一个函数干嘛呢?来计算你这个字符串的长度是怎么回事,那看着来一个叫deff fun,然后呢,往里面传一个字符串特谁呢?字符串的长度这能看懂吗?这个能看到吧?那么想想这函数线,我把大洋哥扔出去,返回减返回三。
06:28
那我把六拉四扔去,来返回底,返回四,那有三六有四的数不就能排序了,就不对有数字的数据能排序了,按照这个顺序就可以排了,所以接下来的工作看好了,我们就可以这么干,怎么排呢?来一个sorted,然后第一个是list,第二个K等于谁可是谁等于fun k等于fun,把这函数扔去,让它用这个函数帮你完成排序,用这个函数帮你完成排序,然后再往下rewards就不给了,默认我们来个生序啊,来个生序,那么也就是说俩字的应该先放前面,能看到吧,俩字放前面,四个字的放后面,那么看一下排完之后的结果,我们来接一下对不对,接一下打印一下,哎,印的LL来走艺杜建跑起来,在那赵四刘能广阔大洋哥,谢大脚你来排不排序,排排排序排了啊排了,所以这里面兄弟们,兄弟们看好了,这里面我们用的排序规则是我们自己写的。
07:28
我们的排序规则是我们自己写的,所以这个规则你可以既然说能写函数的话,你是不是可以任意的去写了,是不是任意写了,比方说举个例子啊,举个例子,我这里面来个A啊,来个啊不来AAA啊,来个AAA来个A,来个aaaaa,来个A。啊,接下来按照这个字符串里面含有A的个数进行排序,含有A的个数进行排序,这怎么玩怎么玩,返回应该什么东西了,Count count什么数,谁数着A,谁count,谁count字符串对不对?字符串点count a这AA有一个返回一,A有两个返回,返回二,那一和二它就能排序了,明白啥意思吧,最终你必须得返回的是什么东西,这块返回是什么东西,必须返回数字啊,必须得返回数字,你不返回数字啊,这块排也就是说归根结底它还是按照什么排的数字啊,按照数字OK,那这也明白了,那咱跑一下看一下整体看看,大元哥,一个A一个A一个A俩A3A的一堆A能看到吗?这个啊。
08:38
怎么了,可以它这个这个函数时候引没传,参数是没传没传,这个要讲刚才不说了吗?看这它的内部是怎么工作的,它的内部你前面是一个什么呢?必须是可迭代对象,这也要他要求的必须可代对象,他怎么办呢?它内部把可迭代对象中的中的哎的每一个元素干嘛呢?传递给后面的fun,传递给后面的fun,那你看好了,如果兄弟我写成这样变成啥了,执行啊,你这个是是不是相当于K等于了什么一个函数的执行对不对,函数执行,这函数执行完是啥,这个是啥,是不是相当于返回,假如返回个一吧,假如返个一,那一怎么来接东西,接不了知道吧,所以他这要的必须是函数名,是函数名,它那头接到一个函数名,比方说举个例。
09:39
啊,Cirit里面如果K接收到一个函数名,那么它底下想做的时候,看好了我帮你还原一下的,它肯定这么写,For element in什么呢?In这个list,然后呢,干嘛呢?把这个EL每个元素拿出来干嘛呢?K小括号把这element给它扔进去,这K是啥?就是你的fun,那fun扔进去,这不就成fun了吗?懂吧,它的内部是这样的,它的内部是这样的啊好了好了,这里面你就记着它把可迭代对象里边的每一个元素,比方这是可在对象每一个元素单元格出来,把单元格塞那个函数里边,跑一下得到一个值,把它塞进去跑一下给个值,把它塞进去跑一个值,每一个东西跑完之后都会有一个值,有个值之后干嘛呢?对这个值进行排序,相应的单子,它们就跟这串懂吧,是这么个东西啊,这么东西,这就是sorted,那么刚才说了这sorted或者是sort map,它跟谁用的跟。
10:39
姆达用,为啥跟拉姆达用呢?看这函数复杂吗?复杂吗?不复来把这函数我改成拉姆达,怎么改?怎么改直接写拉,怎么改传进去什么一个字符串的,然后返回什么东西字符串点框来框子写个什么,写个A是吧,这时拉姆对不对,来看到把这拉姆DA剪切扔到这是不是也可以是的,是不是也可以是,所以一看你这个刚才扔的是这玩意儿吧,扔的是这玩意儿吧,扔这玩意儿我可以把这里每个元素拿出来传给他,然后他帮我去排序,帮我算数,那一样啊,我这写拉姆DA,拉DA跟它一样的,跟他一样的,所以这个时候这个东西就可以代线了,这个东西就可以再线了,最终运行的结果你仔细看走你是一样的啊,是一样的,所以这种sort sort和什么呢?和拉姆DA进行一个整体,一起用的话会非常方便,非常方便,你直接怼就可以啊,直接怼就可以了。好了,接下来看了list里面。
11:48
啊类似里面写谁呢,写个。来吧,别写马化腾们来ID看着啊,ID我们叫它是一号,然后呢,再来一个写这个一号name叫Alex Alex,然后是age啊Alex,今天给他给点面子啊。
12:15
天生今天生日真假的是来看着啊往回收往回收,看着整个大列表里面套着字典啊套着字典来二号人,三号人,四号人五号人,来Alex斯之后啊,这太白太白啊五色,然后呢,日天啊,再来一个女神是吧,女神好了,接下来年龄啊,改一改,太白太白太白怎么看不像18是吧,乌岁30个好的,日天呢,你没见过日天是吧?日天八日日天像八行了,来哥48吧,然后女神女神的话18行吧,女人也不像十八八好了,现在我给这样一个列表填好了,给这样一个列表,接下来我说你干嘛呢,把这个列表里面的。
13:16
人呢,给我按照年龄给我排个序,按照年龄去排序,那按照年龄首先啊,我们去写一个什么呢?写个函数,先不考虑拉姆DA啊,先选来个deff funk funk,然后呢,想想我这里面这一坨东西打开就列表打开,打开第一层应该是什么?是个字典对不对?所以我在这收的应该是什么东西,数字典数字点好了吧,那字典里面我想根据谁盘,是不是想根据A置盘,那很简单,看好了直接return字典里面的age是不是就够了,是不是就够了对吧,搞定搞定之后想去排序,怎么排呢?来自LL等于什么呢?里面传谁列表,然后呢,K等于谁是吧,我这函数,然后这时候它里面就会帮你把这列表打开,打开之后把每个字典当做参数传递给这方,那字典接到这个东西之后来拿到字典的。
14:16
年龄,那这时候你的thirty受到的就是年龄,那年龄咔,一排序,最终给你一个最后的结果,来看这print l l啊,来看这L第一个应该是谁,Al利斯,然后是井女神对吧?然后是乌日天太白是吧?太白最大来走你。就看太白太白看这太白跑最后面去太白跑最后面,这也就是一个排序啊排序你看上面东西这么复杂的东西,但是想排序非常的简单,一句话啊一句话,那么这些东西都改成咱们的怎么改?这K换掉,换什么DA,然后和什么字典对不对,返回什么东西,对字典里边的H搞定了,搞定了,那上面这就可以干嘛呢?可以再见了,可以再见了,可以再见了啊就这么个玩,一句话搞定一个排序,一句话搞定一个排序,这个在别的编程语言里面绝对是闻所未闻,见所未见的啊。好了,把这个去写一下,然后理解一下这个,如果你能理解后面那俩几乎不用我讲,几乎不用我讲filter跟map啊,一模一样的啊,一个一个模子刻出来的,来写写这个啊。
15:32
你呢,刚起。不会写啊,别吓我啊。
我来说两句