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行定义了一个名字列表names,其中包含了6个名字;
- 第3行调用了sorted()函数对names列表进行排序,并将排序结果保存在sorted_names变量中;
- 第3行的lambda函数指定了排序规则,它将每个名字按照空格进行分割,并取出分割后的最后一个元素作为姓氏,最后将姓氏转换成小写字母;
- 第5行输出了按照姓氏排序后的名字列表sorted_names。
运行上述代码,我们可以得到如下输出结果:
['David Davis', 'John Johnson', 'Henry Lee', 'George Lucas', 'Peter Parker', 'William Smith']
从输出结果中可以看出,按照姓氏排序后,名字列表已经按照字母顺序排列好了。
总结
本文介绍了如何使用Python对名字列表按照姓氏进行排序。具体来说,我们借助了Python中的sorted()函数和lambda函数来实现对名字的排序,可以在lambda函数中指定排序规则。希望本文的内容对大家有所帮助。