我知道有很多关于各种python列表的帖子,但是我尝试了大量的东西,并没有完成得到我想要的东西。
我的代码:
list = []
things = re.findall('<a class="th tooltip" data-rel=.*? href="(.*?)".*?> <img src="(.*?)" alt="(.*?)" .*?', content, re.DOTALL)
for url, image, name in things:
list.append({'url': url, 'image': image, 'name': name})
现在我想按名称对此列表进行排序。我发现有几个帖子声称使用list.sort(key=)
,但我不知道我应该使用哪个密钥。我尝试的所有内容都产生了KeyError
。
我很抱歉,如果我复制已经解决的帖子,但我找不到合适的解决方案。
提前致谢。
答案 0 :(得分:2)
使用lambda表达式,lambda表达式将字典作为参数,然后您可以从字典中返回name
元素 -
lst.sort(key=lambda x: x['name'])
此外,请不要使用list
作为变量的名称,它将覆盖内置的list
函数,这可能会在尝试使用list(..)
函数时导致问题。