Joh*_*ohn 2 python sorting list python-3.x
我有链接列表
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>'
]
Run Code Online (Sandbox Code Playgroud)
我需要按链接的名称对列表进行排序.
我尝试用正则表达式对它进行排序,但是它持续时间太长了.该列表由众多参考文献组成
import re
def sorted(x):
return re.search(r'\>(.*)<', x).group(1)
links = sorted(links, key=sorted)
print(links)
Run Code Online (Sandbox Code Playgroud)
可以使用etree解析XML/HTML片段并获取<a>标记之间的文本.然后您可以将其用作排序标准:
from lxml import etree
result = sorted(links,key=lambda x : etree.XML(x).text)Run Code Online (Sandbox Code Playgroud)
所以这里我们调用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>']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
186 次 |
| 最近记录: |