如果第一個元素包含某個字串(時間或會話),我想在字典中洗掉值對,但保留剩余的對(單詞和組)。dic1是我擁有dic2的,也是我想要的。
我寫了一個洗掉整個價值元素的襯里,但這并不是我真正想要的......我想知道我哪里出錯了。
dic1 = dict({'a':[{'word': '3', 'group': 'a', 'time': 'nat'},
{'word': '1', 'group': 'b', 'session':'199'},
{'word': '0', 'group': 'c'}]})
dic2 = dict({'a':[{'word': '3', 'group': 'a'},
{'word': '1', 'group': 'b'},
{'word': '0', 'group': 'c'}]})
{k :[x for x in dic1[k] if (x.keys()) == {'word', 'group'}] for k, in dic1}
uj5u.com熱心網友回復:
不需要的鍵在x這里:
{k :[x for x in dic1[k] if (x.keys()) == {'word', 'group'}] for k, in dic1}
您的理解中還需要一個 dict 理解:
out = {k: [{k2:v2 for k2,v2 in x.items() if k2 not in ('time', 'session')} for x in v1] for k, v1 in dic1.items()}
輸出:
{'a': [{'word': '3', 'group': 'a'},
{'word': '1', 'group': 'b'},
{'word': '0', 'group': 'c'}]}
uj5u.com熱心網友回復:
這是只保留所需欄位的代碼:
dic2 = {k :[{'word':x['word'], 'group' : x['group']} for x in dic1[k]] for k, in dic1}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/418706.html
標籤:
