我有一张这样的清单
d=[{'date': datetime.datetime(2016, 6, 3, 8, 32, 35), 'temp': 39.1}, {'date': datetime.datetime(2016, 6, 3, 9, 32, 35), 'temp': 39.1}, {'date': datetime.datetime(2016, 6, 3, 9, 32, 35), 'temp': 39.1}, {'date': None, 'temp': None}, {'date': datetime.datetime(2016, 6, 3, 11, 32, 35), 'temp': 39.1},{'date': None, 'temp': None}]
我的输出应该是
d=[{'date': datetime.datetime(2016, 6, 3, 8, 32, 35), 'temp': 39.1}, {'date': datetime.datetime(2016, 6, 3, 9, 32, 35), 'temp': 39.1},{'date': None, 'temp': None}, {'date': datetime.datetime(2016, 6, 3, 11, 32, 35), 'temp': 39.1},{'date': None, 'temp': None}]
也就是说,它应该从列表中删除所有重复的条目,除非它不应该删除作为重复项的{'date':None,'temp':None}。 我试过了
result = [i for n, i in enumerate(d) if i not in d[n + 1:]]
但如果存在重复项,则它正在删除包括{'date':None,'temp':None}的内容。如何使用python实现这一点
如果您同意非列表理解解决方案,请尝试以下方法:
您只需添加一个
or
:相关问题 更多 >
编程相关推荐