2017-02-10 117 views
-2

我想从给定句子中计算单词的特定数量......单词是alredy保存在我的dictonary中,句子将被输入用户..... 这是我的代码。python:列表和字典,TypeError:列表索引必须是整数,而不是str

from collections import Counter 

Find_word= raw_input('Write Sentence:') 

wordTosearch=['is', 'am'] 

sentence= Find_word.split() 

cnt = Counter(sentence) 




for k in sentence: 

    if k in wordTosearch: 
    print k, wordTosearch[k] 

if cnt[wordTosearch]>1: 

    print "aggresive" 
else: 

    print "Not agressive" 
+1

你想达到什么目的?你写的东西根本就没有意义......另外'cnt [wordTosearch]'也是无意义的,因为你用一个列表索引一个映射......你想检查所有的值是否都是'> 1'?那么你'如果所有(在cnt.values())中值> 1的值''。 – Bakuriu

回答

0
from collections import Counter 

Find_word= raw_input('Write Sentence:') 
sentence= Find_word.split() 
cnt = Counter(sentence) 

wordTosearch=['is', 'am'] 

for k in wordTosearch: 
    print k, cnt[k] 

if all(cnt[x] > 1 for x in wordTosearch): 
    print "aggresive" 
else: 
    print "Not agressive" 

我不知道底部虽然应该做些什么。

+0

谢谢,,,,,忽略底部.... – atif

0

wordTosearch是单词列表。

以下是通过词语列表迭代:

if k in wordTosearch: 
    print k, wordTosearch[k] # <---- 

其中k是一个词,wordTosearch[k]是一个字符串键,让你“类型错误访问列表值的尝试:列表索引必须是整数,而不是“
您无法通过字符串作为索引的Python 名单访问列表值“编号为”序列

相关问题