Python,比较2个列表(从CSV读取)以使用枚举包含相似的字符串

时间:2018-10-30 14:58:52

标签: python list indexing string-comparison enumerate

我正在读取2个csv文件,其中python列表中有多列,每列在不同列表中,例如(rss_CZ和着陆)。

rss_CZ = ['rs CZ',
 'product-a',
 'product-b-all-in-one-380-ml',
 'product-c-multi',
 ....]

landings = [' landing pages',
 '/products-c-60-ml-sale.html',
 '/product-a-60-120-ml.html',
 '/product-240-380-ml.html',
 .....]

然后,我想比较以上列出的相似元素,并将索引(对于两个列表)保存在找到相似元素的位置。看起来很简单,我尝试以下操作:

# ------- indexes of hits in rss_CZ list
set_landing = set(landings)
hits_rss_CZ = [index for index, item in enumerate(rss_CZ) if item in set_landing]


# ------ indexes of hits in list landings
set_rss_CZ = set(rss_CZ)
hits_landings = [index for index, item in enumerate(landings) if item in set_rss_CZ]

它不起作用,我只得到2个空列表。

如果我尝试这种“丑陋”的方法,它是可行的,虽然不完全正确,但是我得到了一些结果:

for i in rss_CZ:
    for j in landings:
        if i in j: # if the rss is in the landing pages
            hits_landings.append(landings.index(j)) #indexes of hits in rss_CZ list
            hits_rss_CZ.append(rss_CZ.index(i)) #indexes of hits in list landing

有人建议为什么第一种方法没有产生任何效果?还是如何使第二种方法更好?谢谢!

0 个答案:

没有答案