打印漂亮的列表 Python

时间:2021-04-18 19:38:28

标签: python

我有一个令人讨厌的列表,其中有一些概率。 在这个列表中有一本字典。 我只需要打印此字典中对于每个值

中的最高概率

这是我的清单

[{'VERB': {'word': 'ἐπειδὰν', 'prob': 1.4360404322063438e-06, 'backpointer': None}, 
'X': {'word': 'ἐπειδὰν', 'prob': 4.35691878703381e-09, 'backpointer': None}, 
'INTJ': {'word': 'ἐπειδὰν', 'prob': 1.7514813523875917e-07, 'backpointer': None}, 
'CCONJ': {'word': 'ἐπειδὰν', 'prob': 4.6096200766817706e-07, 'backpointer': None}, 
'PUNCT': {'word': 'ἐπειδὰν', 'prob': 0.0, 'backpointer': None}, 
'DET': {'word': 'ἐπειδὰν', 'prob': 5.446148483792262e-07, 'backpointer': None}, 
'PRON': {'word': 'ἐπειδὰν', 'prob': 1.7793656326246081e-06, 'backpointer': None}, 
'ADP': {'word': 'ἐπειδὰν', 'prob': 4.566050888811433e-07, 'backpointer': None},
'SCONJ': {'word': 'ἐπειδὰν', 'prob': 1.4776321081702159e-05, 'backpointer': None}}]

在这种情况下,我想在输出中打印的是:

{'word': 'ἐπειδὰν', 'upos': 'SCONJ', 'prob': 1.4776321081702159e-05, 'backpointer': NONE}

这是我试过的:

outuput_dict = dict()
for element in my_list:
    for e in element.values():
        if e['prob'] > e['prob' + 1]:
           output_dict = {'word': e, 'prob': e['prob']}

但它不起作用。

这是整个列表:

[{'VERB': {'word': 'ἐπειδὰν', 'prob': 1.4360404322063438e-06, 'backpointer': None}, 
'X': {'word': 'ἐπειδὰν', 'prob': 4.35691878703381e-09, 'backpointer': None}, 
'INTJ': {'word': 'ἐπειδὰν', 'prob': 1.7514813523875917e-07, 'backpointer': None}, 
'CCONJ': {'word': 'ἐπειδὰν', 'prob': 4.6096200766817706e-07, 'backpointer': None}, 
'PUNCT': {'word': 'ἐπειδὰν', 'prob': 0.0, 'backpointer': None}, 
'DET': {'word': 'ἐπειδὰν', 'prob': 5.446148483792262e-07, 'backpointer': None}, 
'PRON': {'word': 'ἐπειδὰν', 'prob': 1.7793656326246081e-06, 'backpointer': None}, 
'ADP': {'word': 'ἐπειδὰν', 'prob': 4.566050888811433e-07, 'backpointer': None},
'SCONJ': {'word': 'ἐπειδὰν', 'prob': 1.4776321081702159e-05, 'backpointer': None}},
{'word': 'δὲ', 'VERB': {'word': 'δὲ', 'prob': 3.385314691598631e-11, 'backpointer': 'SCONJ'},
'ADJ': {'word': 'δὲ', 'prob': 1.0218141457581168e-11, 'backpointer': 'SCONJ'}, 
'PART': {'word': 'δὲ', 'prob': 5.355221843863726e-07, 'backpointer': 'SCONJ'}, 
'NOUN': {'word': 'δὲ', 'prob': 1.1639795921244636e-11, 'backpointer': 'SCONJ'}, 
'NUM': {'word': 'δὲ', 'prob': 8.88534039789667e-14, 'backpointer': 'SCONJ'}, 
'ADV': {'word': 'δὲ', 'prob': 1.5616333140156954e-07, 'backpointer': 'SCONJ'}}]

1 个答案:

答案 0 :(得分:3)

只需将 max 与自定义键功能一起使用:

my_list = [{'VERB': {'word': 'ἐπειδὰν', 'prob': 1.4360404322063438e-06, 'backpointer': None}, 
'X': {'word': 'ἐπειδὰν', 'prob': 4.35691878703381e-09, 'backpointer': None}, 
'INTJ': {'word': 'ἐπειδὰν', 'prob': 1.7514813523875917e-07, 'backpointer': None}, 
'CCONJ': {'word': 'ἐπειδὰν', 'prob': 4.6096200766817706e-07, 'backpointer': None}, 
'PUNCT': {'word': 'ἐπειδὰν', 'prob': 0.0, 'backpointer': None}, 
'DET': {'word': 'ἐπειδὰν', 'prob': 5.446148483792262e-07, 'backpointer': None}, 
'PRON': {'word': 'ἐπειδὰν', 'prob': 1.7793656326246081e-06, 'backpointer': None}, 
'ADP': {'word': 'ἐπειδὰν', 'prob': 4.566050888811433e-07, 'backpointer': None},
'SCONJ': {'word': 'ἐπειδὰν', 'prob': 1.4776321081702159e-05, 'backpointer': None}}]

for d in my_list:
    print(max(d.values(), key=lambda x: x["prob"]))