2017-06-06 125 views
0

我有一個詞典列表和一個主詞典。 詞典列表具有以下格式。值被賦予一個在程序中動態變化的變量。根據另一個詞典列表中的鍵值刪除詞典

list_dict = [{'url': url_value , 'title' : title_value}, {'url': url_value , 'title' : title_value}] 

main_dict = {"execution_time": "2017-06-05", "target_url": "http://www.bloomberg.com", "data": [{ "url" : url1}, { "url" : url2}], "name": "Michael", "occupation": "software"} 

如果任何URL值(URL1或URL2)根據數據main_dict是相同的值任何list_dict字典的URL_VALUE,我想刪除該字典從數據。

輸出:假設URL_VALUE是URL1則:

main_dict = {"execution_time": "2017-06-05", "target_url": "http://www.bloomberg.com", "data": [{ "url" : url2}], "name": "Michael", "occupation": "software"} 

我想過使用字典解析,但一切我試過沒有工作。我希望有一個出發點或任何指導。

回答

0

這應該做的伎倆:

my_list = [list_dict_data['url'] for list_dict_data in list_dict] 
delete_list = [] 

for i in range(len(main_dict['data'])): 
    if main_dict['data'][i]['url'] in my_list: 
    delete_list.append(i) 

for i in delete_list: 
    del main_dict['data'][i] 

那麼,它的作用是:

  1. 列出所有網址以list_dict
  2. 迭代通過所有URL檢查主字典和比較它帶有list_dict中的數據
  3. 將索引添加到刪除列表中
  4. 迭代遍歷刪除列表並刪除main_dict中的對應索引

嘗試優化此操作,儘管它非常粗糙。