Python程序:按姓氏排序名字列表
在本文中,我们将学习一个Python程序,以姓氏为关键字对名字列表进行排序。
使用方法
- 使用lambda和sorted()函数
-
使用lambda和sort()函数
示例
假设我们采用了一个 输入列表 ,其中包含字符串元素。我们现在将按字母顺序升序排序列表元素的最后名称,使用以上方法。
输入
输出
输入列表元素的最后名称是 tendulkar、raina、pandya,即 t,r,p (第一个字符顺序)。我们按字母顺序升序排序它们,这意味着 p,r,t (p<r<t)。
方法1:使用lambda和sorted()函数
Lambda函数
Lambda函数,通常称为“匿名函数”,与普通的Python函数相同,只是可以 没有名称 定义。使用 def 关键字定义正常函数,而使用 lambda 关键字定义匿名函数。然而,它们限于一行表达式。与常规函数一样,它们可以接受多个参数。
语法
sorted()函数
sorted()函数返回给定可迭代对象的排序列表。
您可以选择升序或降序。数字按数字顺序排序,字符串按字母顺序排列。
语法
参数
- 可迭代的 − 它是类似元组、列表、字符串等的序列。
-
键 − 一个将执行以确定序列的顺序的函数。默认值为None。
-
reverse − 一个布尔表达式。True表示升序,False表示降序。默认值为False。
算法(步骤)
以下是要执行所需任务的算法/步骤 -。
- 创建一个函数 sortBySurnames() ,它通过接受字符串列表的输入列表按姓氏进行排序。
-
创建一个空列表来存储名称列表。
-
使用 for循环 遍历输入列表。
-
使用 split()函数 (将字符串分割成列表。我们可以定义分隔符;默认分隔符是任何空格)将当前单词拆分为单词列表。
-
使用 append()函数 (将元素添加到列表末尾)将其附加到上面的空列表。
-
再次修改输入列表为空,以存储结果。
-
在将姓氏作为关键字排序新列表的排序中遍历。
-
使用 join()函数 将其转换为字符串,并使用append()函数将其附加到输入列表中。
-
按姓氏返回结果排序列表。
-
创建一个变量来存储 输入列表 中的字符串,并打印给定列表。
-
通过将输入列表作为参数调用上述定义的 sortBySurnames() 函数。
例子
以下程序使用lambda函数和sorted()方法返回输入列表的按姓氏排序的名字列表 –
输出结果
执行上述程序后,将生成以下输出 –
方法2:使用lambda和sort()函数
sort()方法
sort()方法将原始列表就地排序。这表示该方法更改了列表元素的顺序。
默认情况下,sort()方法使用小于运算符(<)来排序列表条目,即按升序排序。换句话说,它将较小的元素优先于较大的元素。
要将元素从最高到最低排序(即按降序排序),请在sort()方法中使用reverse=True参数。
例子
以下程序使用lambda函数和sort()函数返回输入列表的按姓氏排序的名字列表 –
输出结果
执行上述程序后,将生成以下输出 –
结论
本文向我们介绍了按姓氏排序名称列表的两种不同方法。我们学会了如何使用sorted()和sort()函数中的关键字参数根据第n个单词或字符进行排序。此外,我们还学会了如何使用join()函数将列表连接并将其转换为字符串。