Python 如何快速搜索列表元素中的子字符串?
我有一些数据如下:Python 如何快速搜索列表元素中的子字符串?,python,python-2.7,search,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
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]
这花费了太多的时间-我怎样才能使这更快速?通常的警告是
for element in data:
if element.startswith('LOCATION: '):
xmllink = element[10:] # len('LOCATION: ') == 10
break
。。。但是,与您的代码一样,如果
位置:
后面没有一个空格,或者在许多其他情况下,数据可能会出现,也可能不会出现,那么它将中断。顺便说一句,您应该复制粘贴代码,而不是重新键入它。。。上面的输入错误会导致语法错误,因此它根本不会运行(更不用说快速)。下一步(d.partition(':')[-1]。如果d.startswith('LOCATION'),则数据中d的strip()是一种非常易读且短的方法,可以获得完全相同的答案,但速度“慢得多”,大约为每一百万次迭代1.5秒。有利的一面是它对位置:
和位置:\速度真的是个问题吗?