Python 列表 sort()函数使用理解
1、sort函数1.1、sort函数sort()函数是Python内置的一种排序方法其最核心的特点是它直接作用在列表上对列表中的元素进行原地排序即不生成新的列表而是在原列表上进行修改。这一特性使得sort()函数在处理大型数据集时具有显著的性能优势因为它避免了在内存中创建新的列表对象。1.2 基本语法和参数sort()方法的语法list.sort(keyNone, reverseFalse)参数key可选指定排序规则reverse可选升序降序返回值返回None同时将原列表排序。也就是没有返回值1.2.1、key参数key参数是sort()方法最强大的功能。它允许你自定义排序的逻辑。key接受一个函数通常是lambda匿名函数。在排序比较之前列表中的每个元素都会先经过这个key函数处理然后Python会根据这个函数的返回值来进行排序。a.按字符串长度排序对于元素全是字符串的列表可以按照字符串的长度来排序list1 [abc, a, abcd, ab] # keylen 意味着对每个单词应用 len() 函数然后按长度排序 list1.sort(keylen) print(list1)输出# 输出: [a, ab, abc, abcd]本质上是利用字符串的 len() 函数计算长度再排序如果遇到 int 这列没有 len() 函数的元素是会报错 TypeError: object of type ‘int’ has no len()。b、按第二个字符排序对于元素全是字符串的列表可以按照元素的第几个字符排序。list1 [aac, fad, xdw, rcf] list1.sort(keylambda x: x[1]) print(list1)输出[aac, fad, rcf, xdw]c、查找第n大的元素先降序再按照「索引」取值就能获取列表中第一大的值或第二大的值等。list1 [4, 7, 10, 8, 2] list1.sort(reverseTrue) print(最大的元素, list1[0]) print(第二大的元素, list1[1])输出最大的元素 10 第二大的元素 82、sorted()函数Python还提供了一个内置函数sorted()它也用于排序。理解它们的区别至关重要。list.sort()sorted()类型列表的方法method内置函数function使用对象只能用于列表list可以用于任何可迭代对象list, tuple, str, dict, etc.修改原地修改不能修改原始对象通常赋值给一个新的变量返回值None返回一个新的、已排序的列表2.1 代码对比# 使用 list.sort() original_list [5, 2, 3] original_list.sort() # 直接修改 original_list print(fOriginal list after sort(): {original_list}) # 使用 sorted() original_tuple (5, 2, 3) new_list sorted(original_tuple) # 不会修改 original_tuple而是返回新列表 print(fOriginal tuple: {original_tuple}) print(fNew list from sorted(): {new_list})输出Original list after sort(): [2, 3, 5] Original tuple: (5, 2, 3) New list from sorted(): [2, 3, 5]3. lambda函数一个lambda函数是一个小型的、匿名的、单行表达式函数。3.1 基本语法lambda arguments: expressionlambda关键字表示你正在定义一个lambda函数。arguments和普通函数的参数一样可以有零个或多个用逗号分割也就是形参。expression一个单独的表达式。计算这个表达式的结果并作为函数的返回值。3.2 lambda函数与普通函数的对比A. 使用def普通函数def add(x, y): return x y result add(2, 3) print(result)输出5B. 使用lambda匿名函数add_lambda lambda x, y: x y result add_lambda(2, 3) print(result)输出5

相关新闻