我有链接列表
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>']