Python sort函数参数藏大招!用错它,你的代码直接废了
排序这个操作作为其中的一个基本操作, 该语言给出了两种主要的数据排序办法: sort以及, 虽说两者都是用以按特定顺序去排列数据, 然而它们展开工作的方式存在稍许不同, 且应用于不一样的场景, 弄明白sort和之间的差别能够助力编写更具高效性、可读性的代码。了解sortsort方法属于一种内置的列表方法, 去对列表的元素开展排序。这就意味着,原始列表会被修改的, 而且并不会创建.new列表。sort方法能够按照升序或者降序来对列表排序, 还能够运用key参数依据自定义条件展开排序。本地排序当运用sort之时, 原本的列表, 会被重新排列成排序的顺序。鉴于排序是在本地开展的, 所以此方法在内存方面的效率更高, 原因在于它无需去创建新的列表。然而, 这同样意味着, 您将会失去列表原本的顺序, 除非您在排序之前去创建副本。语法list.sort(keyNone, reverseFalse)用法示例 1使用 sort 进行基本排序numbers [3, 1, 4, 1, 5, 9] numbers.sort() print(numbers)输出[1, 1, 3, 4, 5, 9]在这个示例当中, sort把数字的元素依照升序来重新进行排列, 并且让原始列表发生改变。示例 2使用 key 和 排序words [banana, apple, cherry] words.sort(keylen, reverseTrue) print(words)输出[banana, cherry, apple]在这个地方, sort使用keylen这个参数, 按照长度以降序的方式, 对单词列表开展排序。了解函数, 是那具备内置性质的函数, 它能够从任意可迭代对象之中, 像列表、元组或者字符串这些的元素里面, 返回出一个全新的、经过排序的列表, 而且并不对原始的可迭代对象进行修改。跟仅仅适用于列表的sort不一样, 能够被用于任何可迭代对象, 并且始终都会返回包含着已排序元素的新列表。创建新的排序列表在运用之际, 起初的 维持原状, 且构建出一个涵盖已排序元素的全新列表并予以返回。这般一来, 在需要于使用 版本之时留存原始数据的情况下, 就变成了更为优渥的选择。语法sorted(iterable, keyNone, reverseFalse)用法示例 1使用 进行基本排序numbers [3, 1, 4, 1, 5, 9] sorted_numbers sorted(numbers) print(sorted_numbers) print(numbers)sED.GoUlu.INFo输出[1, 1, 3, 4, 5, 9] [3, 1, 4, 1, 5, 9]示例里, 返回的是一个新的经过排序的列表, 但是原本的数字列表维持了不变。示例 2使用 key 和 排序words [banana, apple, cherry] sorted_words sorted(words, keylen, reverseTrue) print(sorted_words) print(words)输出[banana, cherry, apple] [banana, apple, cherry]在这个地方, 会返回出一个崭新的列表, 此列表是依据单词的长度, 按照从大到小的顺序进行排列的, 而且原本的单词列表不会受到任何影响。1. 可变性跟不变性, 2. 返回值, 3. 使用范围, 4. 性能方面所需注意的事项, sort和之间存在的主要区别是这些 , 在如下这种情况之下要去使用sort。希望就地对列表进行排序只使用列表性能很重要例data [3, 1, 4, 1, 5, 9] data.sort() print(data) # Output: [1, 1, 3, 4, 5, 9]在以下情况下使用需要保留原始数据正在使用 lists 以外的可迭代对象需要快速的一次性排序例data [3, 1, 4, 1, 5, 9] sorted_data sorted(data) print(sorted_data) # Output: [1, 1, 3, 4, 5, 9] print(data) # Original list remains unchanged: [3, 1, 4, 1, 5, 9]

相关新闻