Python程序:按姓氏排序名字列表

Python程序:按姓氏排序名字列表

在实际的开发中,我们常常遇到需要对名字进行排序的情况,比如在通讯录应用中,我们需要对联系人按照姓氏进行排序。Python是一门非常适合处理字符串的语言,因此,我们可以很容易地通过编写Python程序来实现对名字列表的排序。接下来,本文将介绍如何使用Python对名字列表按照姓氏进行排序。

准备工作

在开始编写Python程序之前,我们需要准备一个名字列表。为了方便演示,我们可以使用Python中的列表类型来存储名字,如下所示:

names = ['William Smith', 'John Johnson', 'David Davis', 'George Lucas', 'Peter Parker', 'Henry Lee']

在这个名字列表中,我们包含了六个名字。接下来,我们将通过编写Python程序来将这六个名字按照姓氏进行排序。

编写Python程序

我们可以使用Python中的sorted()函数来对名字列表进行排序。sorted()函数可以接受一个可迭代对象作为参数,并返回一个新的已排序的列表。我们可以在sorted()函数中传入一个lambda函数作为key参数来指定排序规则。在lambda函数中,我们可以使用split()函数将名字按照空格进行分割,并取出分割后的最后一个元素作为姓氏。最后,我们使用lower()函数将姓氏转换成小写字母来避免大小写带来的影响。

下面是按照姓氏排序名字列表的Python程序:

names = ['William Smith', 'John Johnson', 'David Davis', 'George Lucas', 'Peter Parker', 'Henry Lee']

sorted_names = sorted(names, key=lambda x: x.split()[-1].lower())

print(sorted_names)

代码注释:

  1. 第1行定义了一个名字列表names,其中包含了6个名字;
  2. 第3行调用了sorted()函数对names列表进行排序,并将排序结果保存在sorted_names变量中;
  3. 第3行的lambda函数指定了排序规则,它将每个名字按照空格进行分割,并取出分割后的最后一个元素作为姓氏,最后将姓氏转换成小写字母;
  4. 第5行输出了按照姓氏排序后的名字列表sorted_names。

运行上述代码,我们可以得到如下输出结果:

['David Davis', 'John Johnson', 'Henry Lee', 'George Lucas', 'Peter Parker', 'William Smith']

从输出结果中可以看出,按照姓氏排序后,名字列表已经按照字母顺序排列好了。

总结

本文介绍了如何使用Python对名字列表按照姓氏进行排序。具体来说,我们借助了Python中的sorted()函数和lambda函数来实现对名字的排序,可以在lambda函数中指定排序规则。希望本文的内容对大家有所帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程