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

时间:2014-05-14 13:58:03

标签: python python-2.7 search

我有一些这样的数据:

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 个答案:

答案 0 :(得分:2)

通常的警告

  1. 过早优化是万恶之源,
  2. Python是为了舒适而不是速度而构建的......
  3. 这应该快一点:

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

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