【发布时间】:2015-09-21 02:59:19
【问题描述】:
我知道有几篇关于各种 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。
如果我要复制已解决的帖子,我很抱歉,但我找不到合适的解决方案。
提前致谢。
【问题讨论】:
-
使用 lambda 函数将列表项
i映射到i['name'],如下所示:key=lambda i: i['name'] -
最好是
key=operator.itemgetter('name')。 -
@bereal: 更好:)
-
@bereal 使用
operator.attrgetter('name')否则它不适用于不可下标的对象 -
@Patrick
attrgetter不能用于 dicts,这就是我们在这种情况下要处理的问题。
标签: python python-2.7