Python 在字典中关联术语?

Python 在字典中关联术语?,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我有一份清单 liste= ['maison_NOUN belle_QUALIF', 'maison_NOUN belle_QUALIF et_CCONJ jolie_ADJ', 'maison_NOUN grande_ADJ' , "jardin_NOUN belle_ADJ"] 我希望有以下输出: {"maison": ["belle", "jolie", "grande"] , &q

我有一份清单

liste= ['maison_NOUN belle_QUALIF', 'maison_NOUN belle_QUALIF et_CCONJ jolie_ADJ', 'maison_NOUN 
 grande_ADJ' , "jardin_NOUN belle_ADJ"]
我希望有以下输出:

 {"maison": ["belle", "jolie", "grande"] , "jardin": ["belle"]
输出必须满足以下条件:

{"NOUN" : [QUALIF or ADJ] }   # and taking into account NOUN like "maison" that have multiple attributes  (remove duplicates)

以下是如何使用
听写
理解:

liste = ['maison_NOUN belle_QUALIF', 'maison_NOUN belle_QUALIF et_CCONJ jolie_ADJ', 'maison_NOUN grande_ADJ' , "jardin_NOUN belle_ADJ"]
dct = {s.split()[0].split('_')[-1]: [s.split()[-1].split('_')[-1]] for s in liste}
print(dct)
输出:

{'NOUN': ['ADJ']}
让我们把它分解一下:

  • 下面是使用
    dict
    理解从
    列表到
    dict
    的最基本转换:
  • 其中,
    dict
    列表的每个元素作为键和值

  • 由于您希望值是一个列表,请在
    dict
    理解的值部分添加方括号:
  • 我看到,对于键,您需要在每个字符串的第一个字符块的下划线右侧添加单词。 首先,要获取第一个字符块,请使用
    .split()
    返回由空格分隔的所有字符块的列表, 并使用标记
    0
    获取第一个块。然后,使用
    .split('''u')将第一个块按下划线拆分,并使用indice
    -1`获取返回单词列表的最后一个元素:
  • 对于值,同样的逻辑也适用,但这一次,我们需要最后一块字符 由空格(而不是第一个块)分隔:

  • 到目前为止你尝试了什么?也不清楚你在问什么。请解释一下你是如何从输入到输出的(这里有什么规则),以及你为什么提到“我们必须拥有”。这很不清楚。此外,请编写您的代码/尝试,以便我们可以帮助您解决任何您陷入困境的问题。
    dct = {s: s for s in liste}
    
    dct = {s: [s] for s in liste}
    
    dct = {s.split()[0].split('_')[-1]: [s] for s in liste}
    
    dct = {s.split()[0].split('_')[-1]: [s.split()[-1].split('_')[-1]] for s in liste}