python - 按链接名称对链接列表进行排序

标签 python list python-3.x sorting

<分区>

我有链接列表

links = [
  '<a href="http://127.0.0.1:5000/project/24/portfolio/">Packaging Only Demo</a>',
  '<a href="http://127.0.0.1:5000/project/38/portfolio/">QA Source</a>',
  '<a href="http://127.0.0.1:5000/project/44/portfolio/">Complete Demo</a>'
]

我需要按链接名称对列表进行排序。

我尝试用正则表达式对它进行排序,但它持续的时间太长了。该列表由大量引用文献组成

import re
def sorted(x):
  return re.search(r'\>(.*)<', x).group(1)

links = sorted(links, key=sorted)
print(links)

最佳答案

可以使用 etree解析 XML/HTML 片段并获取 <a> 之间的文本标签。然后您可以将其用作排序标准:

<b>from lxml import etree</b>

result = sorted(links,<b>key=lambda x : etree.XML(x).text</b>)

所以在这里我们调用 etree.XML(..)构造一个 element 的函数(<a> 标签),以及 .text我们获得标签之间的文本。因此我们可以将其用作 key的排序。

这导致:

>>> result
['<a href="http://127.0.0.1:5000/project/44/portfolio/">Complete Demo</a>', '<a href="http://127.0.0.1:5000/project/24/portfolio/">Packaging Only Demo</a>', '<a href="http://127.0.0.1:5000/project/38/portfolio/">QA Source</a>']

关于python - 按链接名称对链接列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44434391/

相关文章:

python - 如何使用 beautifulsoup 从(可能)损坏的 html 中过滤掉 .mp3 链接? (JSON)

python - 单个列表到字典

python - 访问列表中的字典值

javascript - 创建一个 html 表单并使用 javascript 访问其中的 python 脚本?

python - ElementTree 和 Element 有什么区别? ( python XML)

python - 使用kivy和sqlite 3的动态表格显示

c++ - 在 C++ 中遍历自定义结构列表的小问题

c++ - 自定义类的优先级队列

python - 如何在所有 Dictionary.Values() 中搜索字符串中的所有字符

django - 在批量 python 中创建资源时如何跳过现有对象实例