我正在用python语言创建一个小型搜索引擎。为此,我需要解决以下问题。我基本上有一个由"[==========]"
分隔的几部分组成的文本。
例如:
[blablabla][blabliblou][==========][blablablou][blibloubla][=========][oubabababa][baboulila]
我想创建一种将这些列表组合在一起的算法,直到我们“命中”一个“ ===========”,然后将它们作为第一个列表的值为“ 1”的单个键放入字典中,以下两个列表的值为“ 2”,等等...
老实说,我尝试了很多事情,但无法解决问题。你能帮我吗?
我试图使用for和while创建条件循环
file = open("mytext.txt","r", encoding="utf-8")
dico = {}
counter = 0
for ln in file:
x = ln.split()
for x in file:
print(dico)
while x != "==========":
dico[x] = counter
else:
dico[x] = counter + 1
print (dico)
字典仍然是空的,我不知道为什么!
您可以尝试使用正则表达式。
import re
file = open("myfile.txt","r",encoding="utf-8")
dico = {}
data=file.read()
# split up string int a list of "stuff separated by one or more ="
keys = re.split(r"=+", data)
for i in range(len(keys)):
dico[keys[i]] = i+1
键:
['[blablabla][blabliblou]', '[blablablou][blibloubla]', '[oubabababa][baboulila]']
dico:
{'[blablabla][blabliblou]': 1, '[blablablou][blibloubla]': 2, '[oubabababa][baboulila]': 3}
编辑:修复了一些语法错误。