【发布时间】:2020-09-21 18:26:33
【问题描述】:
我被困在这个 lambda 单线中。这个单行用于对列表中的字符串进行排序,但不知道这实际上是如何工作的?请帮助我理解这一点。 这是以下功能的动机:
sort_item_list_by_author():接受新的图书列表并返回按作者姓名字母顺序排序的图书。注意:按字母顺序排列作者姓名时,忽略包括空格在内的特殊字符(如果有)。
def sort_item_list_by_author(self,new_item_list):
new_item_list.sort(key=lambda x:''.join(e for e in x.get_author_name() if e.isalnum())) #problem causing line
item11=Item("Broken Wing","Sarojini Naidu",2012)
item12=Item("Guide","R.K.Narayanan",2001)
item13=Item("Indian Summers","John Mathews",2001)
item14=Item("Innocent in Death","J.D.Robb",2010)
item15=Item("Life of Pi","Yann Martel",2010 )
item16=Item("Sustainability","Johny",2016)
item17=Item("Look Ahead","E.M.Freddy",2012 )
new_item_list=[item11,item12,item13,item14,item15,item16,item17]
new_item_list_sorted=library.sort_item_list_by_author(new_item_list)
【问题讨论】:
-
这条线的哪个方面让您感到困惑?
-
上面一行和这一行有什么区别-new_item_list.sort(key=lambda x:x.get_author_name())?
-
@user2357112supportsMonica 我无法理解加入
标签: python python-3.x list sorting lambda