如何组合多个列表并将它们作为单个键放入字典中?

问题描述 投票:1回答:1

我正在用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)

字典仍然是空的,我不知道为什么!

python search-engine
1个回答
0
投票

您可以尝试使用正则表达式。

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}

编辑:修复了一些语法错误。

© www.soinside.com 2019 - 2024. All rights reserved.