【问题标题】:How to combine several lists and put them as a single key into a dictionary?如何组合多个列表并将它们作为单个键放入字典中?
【发布时间】:2020-01-20 02:24:03
【问题描述】:

我正在用 python 语言创建一个迷你搜索引擎。为此,我需要解决以下问题。我基本上有一个由"[==========]" 分隔的几个部分组成的文本。

喜欢:

[blablabla][blabliblou][==========][blablablou][blibloubla][=========][oubabababa][baboulila]

我想创建一个算法来组合这些列表,直到我们“点击”a“==========”并将它们作为单个键放入字典中,第一个值为“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)

字典还是空的,不知道为什么!

【问题讨论】:

  • 只是一个提示,考虑这一行:for x in file:
  • 感谢您的回复!重点是什么 ? x 被分割 ln
  • 你能显示预期的输出吗?
  • 这是我的预期输出:dico{blablabla blabliblou : 1, blablablou blibloubla : 2, oubabababa baboulila : 3}

标签: python search-engine


【解决方案1】:

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

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}

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

【讨论】:

  • 非常感谢马修,我会尽力让你知道
  • 我其实在主题描述中犯了一个小错误,我忘了准确地说“==========”是列表。
猜你喜欢
  • 2012-05-05
  • 2019-06-03
  • 2019-03-23
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 2014-08-22
相关资源
最近更新 更多