Skip to main content
 首页 » 编程设计

Python 搜索循环慢

2025年05月04日9落叶无声

我正在对广告列表 (adscrape) 进行搜索。每个广告都是 adscrape 中的一个字典(例如下面的广告)。它搜索 ID 列表 (database_ids),该列表的长度可能在 200,000 到 1,000,000 之间。我想在 adscrape 中找到 database_ids 中没有 ID 的所有广告。

我当前的代码如下。每个广告扫描 database_ids 需要很长的时间和几秒钟。有没有更有效/更快的运行方法(查找大列表中的哪些项目,在另一个大列表中)?

database_ids = ['id1','id2','id3'...] 
ad = {'body': u'\xa0SUV', 'loc': u'SA', 'last scan': '06/02/16', 'eng': u'\xa06cyl 2.7L ', 'make': u'Hyundai', 'year': u'2006', 'id': u'OAG-AD-12371713', 'first scan': '06/02/16', 'odo': u'168911', 'active': 'Y', 'adtype': u'Dealer: Used Car', 'model': u'Tucson Auto 4x4 ', 'trans': u'\xa0Automatic', 'price': u'9990'} 
 
for ad in adscrape: 
    ad['last scan'] = date 
    ad['active'] = 'Y' 
    adscrape_ids.append(ad['id']) 
    if ad['id'] not in database_ids: 
        ad['first scan'] = date 
        print 'new ad:',ad 
        newads.append(ad) 

请您参考如下方法:

`您可以使用列表理解作为下面给出的代码库。使用上面给出的现有 database_ids 列表和 adscrape 字典。

代码库: new_adds_ids = [如果 ad['id'] 不在 database_ids 中,则广告在 adscrape 中的广告]`