我在python中有不同的列表:
list1 = [hello,there,hi]
list2 = [my,name,hello]
我需要创建一个字典,其中键是一个单词出现的列表数。所以我的答案看起来像 {2:你好,1:嗨....}
我是python的新手,我不知道如何做到这一点。
答案 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})
希望它能像您期望的那样工作:)