假设我有这样的文本字符串:
我想把它分解成品牌,型号,处理器,屏幕大小,高清大小,内存,状态
我在想,解析这些字符串的最具python风格的方法是什么?你知道吗
目前,我正在做以下工作:
is x in y
来:
下面是一些示例代码:
import re
data={}
complist = {'make':['Apple','Toshiba','HP', 'Fujitsu'...],
'model':['Air','Surface','Zenbook','Lifebook','Mac Pro',...],
'condition':['New','Used','Refurbished'...]}
string = 'Fujitsu LifeBook E734 13.3" i5 2.5GHz/4Gb RAM/500Gb SSHD Like NEW'
for comparison in complist :
for compare in complist[comparison]:
if compare in string:
data[comparison]=compare
string = string.replace(compare, '')
stringsplit=re.findall(r"[\w']+", string )
for i,s in enumerate(stringsplit):
if any(key in s for key in ['Mb','Gb','Tb']):
...
data['Ram']=...
if any(...
我可以强行这样做,但“…”是我要找的指导。而且,第一部分可能也可以更有效地完成。你知道吗
非常感谢您的帮助。你知道吗
通常,您会希望将
string
拆分为一个列表,然后循环查看它是否出现在complist
字典中(而不是相反):这样做,您将能够减少循环的数量
关于列表: 使用排序列表! 因为你将能够使用二进制搜索,这是非常快的
关于集合: 因为看起来你只需要找出单词是否在列表中。您可以将complist存储为集合,而不是列表。集合中隶属度检验的速度为O(n)(“大O-表示法”),比列表快
相关问题 更多 >
编程相关推荐