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

问题描述 投票: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]']

我说:

{'[blablabla][blabliblou]': 1, '[blablablou][blibloubla]': 2, '[oubabababa][baboulila]': 3}

编辑:修复了几个语法错误。

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