【问题标题】:Python - Create key value pairs from multiple token keys and valuesPython - 从多个令牌键和值创建键值对
【发布时间】:2016-12-14 23:55:45
【问题描述】:

我有一个字典,其中包含具有大量不同键和值的条目。

一些由空格分隔的多标记字符串,一些没有空格的单标记字符串。

有些是完全一致的,一个token的key,一个token的value:

"'Apl'": "'Apple'",

有些有单个令牌键和多个令牌值:

"'Blpepr'": "'Bell Pepper'",

有些有多个令牌键和单个令牌值:

"'Grn Bn'": "'Greenbean'",

还有一些有多个令牌键和多个令牌值(两边并不总是相同的数字!):

"'Swt Ptto'": "'Sweet Potato'",

我正在尝试创建一个字典,将键:值对尽可能接近地分配到它们的对应侧,这样至少我可以得到:

"'Apl'": "'Apple'",
"'Swt'": "'Sweet'",
"'Ptto'": "'Potato'",

我认为带有不匹配的标记数量的键和值是失败的原因,因为在没有空格的情况下很难确定标记的开始和结束位置。但至少对于以空格分隔的标记,我们知道标记的开始和结束位置,所以我希望结果与上述类似。

为了只检索那些带有空格的键,我对我的字典做了以下操作:

for key, value in dictionary1.items():
    if " " in key and value:
        print(key + ":" + value)

有什么想法吗?

【问题讨论】:

  • 您可能非常轻松地参与了分配键值对的部分。为了训练您的系统自行识别接近度,您必须使用训练数据制作神经网络。简单但不太精确的方法(我认为你想要)是按顺序检查每个字符的出现次数,并将值映射到最大计数
  • 我认为您应该考虑使用单词邻近算法。看看one answer implementation

标签: python dictionary key keyvaluepair


【解决方案1】:

您可以使用.split() 代替您当前检查空格的方式:

for x in old_dict:
    for i in range(0,2):
        key = x.split()[i]
        value = old_dict[x][0].split()[i]
        new_dict[key] = value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 2015-03-22
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    相关资源
    最近更新 更多