Tuesday, December 2, 2008

python中,怎么做个字典,数句子中单词出现的次数?








python中,怎么做个字典,数句子中单词出现的次数?

悬赏分:20 - 解决时间:2008-6-6 01:42

写个字典程序,数句子中出现相同单词的次数.

Using a dictionary, create a program that counts the number of
times a word appears in a sentence. You should use a key to represent
the word; the value should be the word count. Your program should first
prompt the user for a sentence. You can ask for the input and split the
sentence into separate words using the following code:

text=raw_input("Enter a sentence:")

words=text.split()

The variable words will then contain a list of all the words in the sentence.



提问者: ireneolo - 试用期 一级













最佳答案





words 已经得到了,用一个 word_dict 当作 map 统计频度就可以了:



text = raw_input("Enter a sentence:")

words = text.split()

word_dict = {}

for w in words:

    if w not in word_dict:

        word_dict[w] = 1

    else:

        word_dict[w] = word_dict[w] + 1

print word_dict




回答者:scalarize - 同进士出身 七级  6-5 10:12






提问者对于答案的评价:

太感谢你啦

还有些问题,不知可否请教你?




评价已经被关闭    目前有 0 个人评价
















50% (0)
不好
50% (0)




















其他回答    共 1 条







text = raw_input("enter a sentence:")

words = text.split()

wordscount = [words.count(elem) for elem in words]

worddict={map(None,words,wordscount)}



要完成你的目标:

我要



计算每个词语出现的次数,

把词语出现的次数和词语列表组合成字典;



伪代码出来了,程序也就有了....



python有着强大的列表解析,内建模块使用C完成,他们很快,所以能够调用内建模块你就不要自己多事。

尽量按照伪代码去完成程序,除非必须细化,否则让python为你操作低层吧,他很聪明



第三句释义:

对于列表元素计数有很简单的list.count()方法。

这个语句就是利用了这个,statement for element in list fileter expression这是list的解析式。

通过这个你可以方便的将一个list解析为另一个。这一句就对list中所有的元素运用count()方法,并且建立新的list。

另外一个例子:a=[2,3,4,7,8]找到这个list中的偶数,并得到它们的平方列表

这样写:[elem*elem for elem in a if elem%2==0]



第四句释义:

list有个map方法,它可以提供list的映射。map(statement,list1,list2)就是将list1,list2按照
statement规则映射。我的表达式是none所以得到的结果就是简单的[('this', 3), ('is', 4), ('a',
1)]这样的二元tuple列表。

dict函数则是针对上述list的。它能把上述list转化为字典。

这在你做数据处理时很有好处,你可以很轻松的建立一个hash表。



python的强大在于简明,遇到程序尝试着用最简单地方法去解决,你会很快喜欢上的。



以上^乐于与您交流


No comments: