Skip to main content
 首页 » 编程设计

python之排序列表的元素包含称呼吗

2025年05月04日13webabcd

我有一个包含称呼的字符串列表。我如何以 pythonic 方式根据名称(在称呼之后 - 先生、女士、夫人)对列表进行排序?

我曾尝试根据“.”拆分列表的元素。字符并对名称进行排序,但无法使用排序名称获得称呼。

names = ["Mr.usman", "Mrs.obama", "Mr.Albert"] 
sorted_list = sorted([i.split('.')[1] for i in names]) 

例如 ["Mr.usman", "Mrs.obama", "Mr.Albert"] 应该像 ["Mr.Albert", "Mrs.obama", “乌斯曼先生”]

非常感谢任何帮助。

请您参考如下方法:

您不应该对操作列表进行排序,您可以指定 key=... 参数来确定要排序的内容,例如:

sorted_list = sorted(names, key=lambda n: n.split('.', 2)[1].casefold()) 

这会产生:

>>> sorted(names, key=lambda n: n.split('.', 2)[1].casefold()) 
['Mr.Albert', 'Mrs.obama', 'Mr.usman'] 

.casefold() 用于进行不区分大小写的比较,您的问题示例输出表明了这一点。如果您想要比较大小写敏感,可以将其删除。