按列表属性排序列表

时间:2015-07-03 09:58:06

标签: python python-2.7

我知道有很多关于各种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

我很抱歉,如果我复制已经解决的帖子,但我找不到合适的解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用lambda表达式,lambda表达式将字典作为参数,然后您可以从字典中返回name元素 -

lst.sort(key=lambda x: x['name'])

此外,请不要使用list作为变量的名称,它将覆盖内置的list函数,这可能会在尝试使用list(..)函数时导致问题。