qzx*_*zxt 6 python string function
所以我几个月来一直在学习Python,并且想知道如何编写一个函数来计算一个单词出现在句子中的次数.我很感激,如果有人可以请给我一步一步的方法来做到这一点.
快速回答:
def count_occurrences(word, sentence):
return sentence.lower().split().count(word)
Run Code Online (Sandbox Code Playgroud)
'some string.split()将空格(空格,制表符和换行符)上的字符串拆分为单词列表.然后['some', 'string'].count(item)返回item列表中出现的次数.
这不会处理删除标点符号.你可以用string.maketrans和做str.translate.
# Make collection of chars to keep (don't translate them)
import string
keep = string.lowercase + string.digits + string.whitespace
table = string.maketrans(keep, keep)
delete = ''.join(set(string.printable) - set(keep))
def count_occurrences(word, sentence):
return sentence.lower().translate(table, delete).split().count(word)
Run Code Online (Sandbox Code Playgroud)
这里的关键是我们构造了字符串delete,使其包含除字母,数字和空格之外的所有ascii字符.然后str.translate在这种情况下,需要一个不会更改字符串的转换表,还会删除要删除的字符串.
wilberforce有一个快速,正确的答案,我将为您解答冗长的“如何得出结论”的答案。
首先,这里有一些入门的工具,以及一些您需要问自己的问题。
您需要阅读python文档中有关序列类型的部分,因为它是解决此问题的最好朋友。认真阅读。阅读这些内容后,您应该有一些想法。例如,您可以使用长字符串,然后使用split()函数将其分解。明确地说:
mystring = "This sentence is a simple sentence."
result = mystring.split()
print result
print "The total number of words is: " + str(len(result))
print "The word 'sentence' occurs: " + str(result.count("sentence"))
Run Code Online (Sandbox Code Playgroud)
接受输入字符串并将其分割为任何空格,并为您提供:
["This", "sentence", "is", "a", "simple", "sentence."]
The total number of words is 6
The word 'sentence' occurs: 1
Run Code Online (Sandbox Code Playgroud)
现在请注意,在第二个“句子”的末尾您确实还有句点。这是一个问题,因为“句子”与“句子”不同。如果要遍历列表并计算单词数,则需要确保字符串相同。您可能需要查找并删除一些标点符号。
一个天真的方法可能是:
no_period_string = mystring.replace(".", " ")
print no_period_string
Run Code Online (Sandbox Code Playgroud)
给我一个无期限的句子:
"This sentence is a simple sentence"
Run Code Online (Sandbox Code Playgroud)
您还需要确定输入的内容是仅一个句子还是一段文本。如果输入中有很多句子,则可能希望找到一种将它们分解为单个句子并找到句点(或问号,感叹号或其他结束句子的标点符号)的方法。一旦找到了“句子终止符” 在字符串中的位置,就可以在该点拆分字符串,或类似的东西。
您应该自己尝试一下-希望我已经提出了足够的提示,可以让您了解文档中的某些特定功能。
| 归档时间: |
|
| 查看次数: |
39758 次 |
| 最近记录: |