在第二个列表中查找列表的频率

时间:2019-02-27 10:27:58

标签: python csv

如果我有两个列表,就像我必须针对list2查找list1的频率

list1 =[ 'cat','dog','man']
list2 =['cat is sleeping','cat is running','cat and dogs is sleeping ','man dog cat is running']

我如何找到list1到list2的频率 我正在使用

之类的正则表达式
for list1 in list1:
        for list2 in list2:
        re.findall(list1,list2)

但是显示错误 而且我必须将其保存为CSV

类似于list1的名称在行中,而list2的频率在列

2 个答案:

答案 0 :(得分:0)

import csv

list1 =[ 'cat','dog','man']
list2 =['cat is sleeping','cat is        running','cat and dogs is sleeping ','man dog cat is running']

for i in list1:
    count=0
    l = []
    for j in list2:
        if i in j:
            count+=1

    print i,count
    l.append(i)
    l.append(str(count))
    print l
    with open('freq.csv', 'a') as writeFile:
        writer = csv.writer(writeFile)
        writer.writerow(l)

答案 1 :(得分:0)

一个班轮:

list1 =[ 'cat','dog','man']
list2 =['cat is sleeping','cat is        running',
        'cat and dogs is sleeping ','man dog cat is running']



res = zip(list1, (map(lambda word: len(list(filter(lambda sen: word in sen, list2))), list1)))

print(dict(res))

将打印:

{'cat': 4, 'dog': 2, 'man': 1}