我有一个字典列表,我想通过使用条件列表理解创建一个新的字典列表
字典列表的示例包括:
d1 = [{'id': '1', 'co': '1', 'w': '10'}, {'id': '5', 'co': '2', 'w':'60'}]
d2 = [{'id': '1', 'na': 'Bi', 'teac': ' D'}]
作为输出,所需输出为:
d_new = [{'id': '1', 'co': '1', 'w': '10', 'na': 'Bi', 'teac': ' D'}]
我最初的方法是使用如下理解:
[d1.update({'na':r['na'],'teac':r['teac']}) for d in d1 for r in d2 if d['co'] == r['id']]
但是,我将[None, None]
作为输出
有没有办法解决这个问题以获得所需的输出
只是一个快速更新:
我的意思是这个而不是下面的一个:
[d.update({'na':r['na'],'teac':r['teac']}) for d in d1 for r in d2 if d['co'] == r['id']]
首先,你的代码对于你的输出应该是什么毫无意义,不管怎样,对于你的问题的答案是[None,None]list comprehension返回一个包含你语句d1的返回的列表。update(某物),它是就地更新,不返回任何东西(None),循环运行两次,因为d1中有2项,d2中有1项(2*1)(也就是说,如果在末尾没有if语句,考虑它是否返回[None]),那么在列表中得到2个Nones检查结尾处d1的值,你会看到它已更改
相关问题 更多 >
编程相关推荐