我有两个字典,响应就像
Array1= {'date': '30-06-18 22:23:01 (UTC)', 'FullName': 'NoMatch', 'image': 'Events/mili/DSC_0150.jpg', 'EventName': 'mili'}
,{'date': '30-06-18 22:23:01 (UTC)', 'FullName': 'NoMatch', 'image': 'Events/mili/DSC_0154.jpg', 'EventName': 'mili'}
Array2= {'date': '30-06-18 22:23:01 (UTC)', 'FullName': 'NoMatch', 'image': 'Events/mili/DSC_0151.jpg', 'EventName': 'mili'}
,{'date': '30-06-18 22:23:01 (UTC)', 'FullName': 'NoMatch', 'image': 'Events/mili/DSC_0154.jpg', 'EventName': 'mili'}
和其他字典中的方法一样,我要这样做是要使Array1没有Array2 [k] ['image']相同的值。表示array2中不应包含array2的映像。
结果字典应为
Array3 = {'date': '30-06-18 22:23:01 (UTC)', 'FullName': 'NoMatch', 'image': 'Events/mili/DSC_0150.jpg', 'EventName': 'mili'}
我试图这样做
list3 = [item for item in list1 if item not in list2]
但是我无法在此循环中访问索引和值
答案 0 :(得分:0)
在这里,我们构建了一组要排除的图像,然后构建了结果列表。
array2_images = set(item['image'] for item in Array2)
array3 = [item for item in Array1 if item['image'] not in array2_images]
# [{'date': '30-06-18 22:23:01 (UTC)', 'EventName': 'mili', 'FullName': 'NoMatch', 'image': 'Events/mili/DSC_0150.jpg'}]
答案 1 :(得分:0)
您需要比较image
中Array2
中的Array1
值。列表理解可以这样:
temp = [i['image'] for i in Array2]
print([i for i in Array1 if i['image'] not in temp])