如何制作产品网站模板下载地址,如何接单做网站,网站不收录怎么办,擦边球网站怎么建设大家好#xff0c;今天针对 Python 中 sort() 和 sorted() 之间的区别#xff0c;来一个实例详细解读。sort — 顾名思义就是排序的意思#xff0c;它可以接收的对象为可迭代的数据类型。今天以列表为例子演示两者的不同点、相同点#xff0c;以及其中一些常用的高级参数使… 大家好今天针对 Python 中 sort() 和 sorted() 之间的区别来一个实例详细解读。sort — 顾名思义就是排序的意思它可以接收的对象为可迭代的数据类型。今天以列表为例子演示两者的不同点、相同点以及其中一些常用的高级参数使用方法。 sort()它是不可以储存变量值的 例如有一个列表为 day_lst [‘Monday’,‘Tuesday’,‘Wednesday’,‘Thursday’,‘Friday’,‘Saturday’,‘Sunday’] 当创建一个新的变量名为 new_lst 去执行 day_lst.sort()然后打印这个变量值结果为 “None” , 这正验证了 sort() 方法是不可以储存变量值的因此返回的是空值。 day_lst [Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday]new_lst day_lst.sort()print(new_lst)对 day_lst sort() 排序后结果为升序 (ascending) day_lst [Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday]day_lst.sort()print(day_lst)sorted()它是可以储存变量值的 : 同样 列表为 day_lst [‘Monday’,‘Tuesday’,‘Wednesday’,‘Thursday’,‘Friday’,‘Saturday’,‘Sunday’] 当创建一个新的变量名为 new_lst 去执行 sorted(day_lst)然后打印这个变量值 结果为一个已经按升序排序的新列表。 day_lst [Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday]new_lst sorted(day_lst)print(new_lst)以上两种方法默认的排序方式都是升序 — ascending那么如果要变成降序 — descending该怎样实现呢 只需要加上参数 reverse True 就可以了。先看看两种方法实现的结果。 day_lst [Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday]day_lst.sort(reverseTrue)print(day_lst) day_lst [Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday]new_lst sorted(day_lst,reverseTrue)print(new_lst)以上可见当加上参数 reverse True, 结果完全是倒转了。那就说明了 reverse 这个可选 optional ) 参数默认为 False。 我们可以再看看以下图就知道为什么它是可选的参数又或者说为什么知道有这个参数的存在可选 根据以上2个图所显示无论是 sort() 还是 sorted() 当写入他们的方法后编译器都会提示显示有相关的可选参数以及一些自带的可选参数默认的值。而 reverse 就是一个关键字参数值为 bool 类型那就是 True 和 False 但可能你们会问方法带出来的提示并没有显示究竟默认的方式是升序还是降序那怎样判断呢 我们可以通过查看相对应的底层代码源码看看这也是作为程序员必须掌握的查看方法因为每个方法里面包含好多不同的实现方法、参数用法的解释说明等等。 键盘按着 “Ctrl” 键然后鼠标移动到相对应的方法等待方法变成带超链接的状态就可以鼠标点击它这样就可以进入它的底层代码看相对应的实现规则、逻辑。 Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the reverse flag can be set to request the result in descending order. 图里的这段话大概意思就是sorted() 方法返回一个升序的可迭代的数据类型。其中它包含2个参数一个就是 key可以自定义 另外一个就是 reverse它可以设置为降序的方式。 最后演示一下参数 key 的具体用法由于 sort() 和 sorted() 这两个方法都支持 key参数所以只演示 sort()不再重复 sorted() 这部分了。例如有 num_lst [50,100,-60,20,40] 这样一个列表。 在传入 keyabs 这个参数后可见输出的排序结果为 [20, 40, 50, -60, 100] 按照默认升序逻辑-60 不是最小吗为什么它排在第4位而不是第1位呢 这样要注意的是因为 key 的值为 abs, abs 意思就是绝对值的意思因此 -60的绝对值就是60所以编译器就按 -60转为绝对值 60去排序。 day_lst [Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday]num_lst [50,100,-60,20,40]num_lst.sort(keyabs)print(num_lst)例如有一个 letter_lst [‘E’, ‘G’, ‘X’, ‘b’, ‘f’, ‘y’] 的列表 在传入keystr.lower 后 它的作用就是先把列表里的字母的大写字母转换成小写就相当于首先变成 [‘e’, ‘g’, ‘x’, ‘b’, ‘f’, ‘y’] , 要注意的是 字符串类型的排序按照ASCII的大小进行比较。根据以下截取的底层代码解释If a key function is given, apply it once to each list item and sort them,ascending or descending, according to their function values. 意思就是排序的结果是根据它们的值而定。相关的字母 ASCII 对照表可以看我文章最后的对照图。 因此在转变成全小写列表 [‘e’, ‘g’, ‘x’, ‘b’, ‘f’, ‘y’] 后 根据它们对应的 ASCII的值就相当于 [101, 103, 120, 98, 102, 121] 这样的列表 然后再按升序排序方式相当于 [98101102103120, 121 ] , 因此最后输出的结果为 [‘b’, ‘E’, ‘f’, ‘G’, ‘X’, ‘y’] 因为 98 对应为 b, 101 对应为 e, 102 对应为 f, 103 对应为 g, 120 对应为 x , 121 对应为 y letter_lst [E, G, X, b, f, y]# num_lst.sort(keyabs)letter_lst.sort(keystr.lower)print(letter_lst)关于这两个方法的主要常用方法就介绍到这里了 如果有任何问题欢迎评论区留言问有空的时候会尽快回复