我有一个字典列表,如:
输入= [{“subject”:“Hello”,“message”:“World”},{“subject”:“Hello”,“message”:“Stranger!”},{“subject”:“Hello”,“消息“:”陌生人!“},{”主题“:”……
声明输出变量 dict_output &安培;迭代 Input 通过检查列表 subject 价值存在于 dict_output 。
dict_output
Input
subject
对于第一次迭代, Hello 不存在于 dict_output 所以else语句被执行& World value作为列表插入到字典中 dict_output 反对这 Hello 键。
Hello
World
第二个& for循环的第三次迭代, Hello 钥匙出现在 dict_output &安培;如果陈述成立,那么 Stranger! 被附加到列表中 Hello 键入 dict_output 。
Stranger!
最后一次迭代与第一次迭代相同。
的 代码: 强>
Input = [{"subject" : "Hello", "message": "World"}, {"subject" : "Hello", "message": "Stranger!"}, {"subject" : "Hello", "message": "Stranger!"}, {"subject" : "Welcome", "message": "Python"}] dict_output ={} for i in Input: if i["subject"] in dict_output: dict_output[i["subject"]].append(i["message"]) else: dict_output[i["subject"]] = [i["message"]] print(dict_output)
的 输出: 强>
{'Hello': ['World', 'Stranger!', 'Stranger!'], 'Welcome': ['Python']}
试试这个 :
inp = [{"subject" : "Hello", "message": "World"}, {"subject" : "Hello", "message": "Stranger!"}, {"subject" : "Hello", "message": "Stranger!"}, {"subject" : "Welcome", "message": "Python"}] outp = {b: [a['message'] for a in inp if a['subject'] ==b] for b in set([a['subject'] for a in inp])}
的 OUTPUT 强> :
{'Welcome': ['Python'], 'Hello': ['World', 'Stranger!', 'Stranger!']}