V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
firejoke
V2EX  ›  Python

关于 zen of Python 与实际时间空间复杂度

  •  
  •   firejoke · 2018-07-09 12:09:51 +08:00 · 1356 次点击
    这是一个创建于 2318 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近一个小项目 一个纠结的点
    div class = "father"
    ____div class = "child"
    ________p
    ____________a href = "#"
    ________/p
    ____/div
    ____div class = "child2"
    ________p
    ____________a href = "#"
    ________/p
    ____/div
    ____div class = "child3"
    ________p
    ____________a href = "#"
    ________/p
    ____/div
    /div

    像这种情况 是用多条 xpath 精确查找
    ch_o = new_html.xpath('//[class="child"]//')
    ch_o = [e.href for e in ch_o if e.text ]
    ch_t = new_html.xpath('//[class="child2"]//')
    ch_t = [e.href for e in ch_t if e.text]
    ch_h = new_html.xpath('//[class="child3"]//')
    ch_h = [e.href for e in ch_h if e.text ]

    还是用一条 xpath 模糊查找再推导式过滤更好呢
    list_f = new_html.xpath('//@[class="father"]//')
    list_filte = [[ine for ine in oe.xx if oe.xx.text] for oe in list_f if oe.xx ]

    测试发现,每多一条 xpath 语法速度就会慢接近一倍
    但实际情况下,最后的过滤推导式的层数会更多
    到底应该如何取舍呢?

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1508 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 23:56 · PVG 07:56 · LAX 15:56 · JFK 18:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.