繁体   English   中英

如何快速搜索列表元素中的子字符串?

[英]How to search a sub-string in elements of a list speedily?

我有一些这样的数据:

data = [
    'HTTP/1.1 200 OK',
    'CACHE-CONTROL: max-age=1810',
    'DATE: Wed, 14 May 2014 12:15:19 GMT',
    'EXT:',
    'LOCATION: http://192.168.94.57:9000/DeviceDescription.xml',
    'SERVER: Windows NT/5.0, UPnP/1.0, pvConnect UPnP SDK/1.0',
    'ST: uuid:7076436f-6e65-1063-8074-78542e239ff5',
    'USN: uuid:7076436f-6e65-1063-8074-78542e239ff5',
    'Content-Length: 0',
    '',
    ''
]

从中我必须提取“.xml”链接。

我的代码是:

for element in data:
    if 'LOCATION' in element:
        xmllink = element.split(': ').[1]

这花费了太多时间 - 我怎样才能让它更快速?

随着通常的警告

  1. 过早优化是万恶之源,而且
  2. Python是为了舒适而建造的,而不是速度......

这应该快一点:

for element in data:
    if element.startswith('LOCATION: '):
        xmllink = element[10:]  # len('LOCATION: ') == 10
        break

...但是,就像你的代码一样,如果在LOCATION:之后没有一个空格,它将会中断LOCATION:在许多其他情况下,你的数据可能会或可能不会发生。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM