该单词出现在多少个列表中?

时间:2014-09-24 05:47:36

标签: python

我在python中有不同的列表:

list1 = [hello,there,hi]
list2 = [my,name,hello]

我需要创建一个字典,其中键是一个单词出现的列表数。所以我的答案看起来像 {2:你好,1:嗨....}

我是python的新手,我不知道如何做到这一点。

3 个答案:

答案 0 :(得分:2)

您需要使用字典来存储键值结果。

以下是一些可帮助您入门的代码,但您必须修改为您的确切解决方案。

#!/usr/bin/python

list1 = ["hello","there","hi"]
list2 = ["my","name","hello"]

result = dict()

for word in list1:
    if word in result.keys():
        result[word] = result[word] + 1
    else:
        result[word] = 1

for word in list2:
    if word in result.keys():
        result[word] = result[word] + 1
    else:
        result[word] = 1

print result

答案 1 :(得分:1)

首先,制作反向字典

初始化

words_count = {}

然后对每个单词列表都这样做

for word in list_of_words:
    if not word in words_count:
        words_count[word] = 1
    else:
        words_count[word] += 1

然后像这样反转words_count:

inv_words_count = {v: k for k, v in words_count.items()}

inv_words_count是所需的结果

答案 2 :(得分:1)

我稍微修改了您的输入列表(list1& list2),如下所示:

list1 = ['hello,there,hi'] # Added quotes as it is a string
list2 = ['my,name,hello'] 

这是逻辑:

list1 = list1[0].split(',')
list2 = list2[0].split(',')
list_final = list1 + list2

dict_final = {}

for item in list_final:
    if item in dict_final.keys():
        dict_final.update({item:(dict_final.get(item) + 1)})
    else:
        dict_final.update({item:1})

希望它能像您期望的那样工作:)