我创建了一个字典:
listing = {'2': 'Mary Lejam', '3': 'Zachery Aka', '1': 'John Joer', '4': 'Joe Private', '10': 'Carla Chris'}
我正在编写一个简单的程序,它根据键(即 id)对名称进行排序,并根据姓氏进行排序,我用字典的键找出了 id。但是现在我正在尝试找到一种对姓氏进行排序的方法。
我尝试导入 re,例如itemgetter(re.match(regex))
,给了我错误我想知道是否可以使用 itemgetter 并在其中编写一些正则表达式来忽略姓氏之前的所有内容。它基本上会忽略空间之前的所有内容。
LastName = sorted(listing.values(), key=itemgetter(Some Regex))
itemgetter
在这里不是特别有用,因为您需要对返回值做进一步的工作,而 Python 没有任何方法可以直接组合函数。
sorted(listing.items(), key=lambda x: x[1].split()[1])
如果是函数组合,说,因为你使用的是toolz
包,你可以写
from toolz import compose
# Equivalent functions, but names reflect different *purposes*
get_name = get_last_name = itemgetter(1)
split_name = methodcaller('split')
sorted(listing.items(), key=compose(get_last_name, split_name, get_name))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句