我已经尝试解决这个问题几个小时了,并且无法找到正确的解决方案,这就是问题:
使用a编写一个创建新单词列表的循环 用于从问题3中创建的列表中删除单词的字符串方法 所有领先和尾随标点符号。提示:字符串库, 在上面导入的,包含一个名为标点符号的常量。 三行代码。
这是我的代码:
import string
def litCricFriend(wordList, text):
theList = text.lower().replace('-', ' ').split() #problem 3
#problem below
for word in theList:
word.strip(string.punctuation)
return theList
答案 0 :(得分:0)
你的代码中有几处......好吧,我不确定为什么他们会在那里,说实话,哈哈。让我们共同努力吧!
我假设您收到了一些文字:text = "My hovercraft is full of eels!"
。让我们将其拆分为单词,将单词设为小写,并删除所有标点符号。我们知道我们需要string.punctuation
和str.split()
,您还发现str.replace()
很有用。所以,让我们使用这些并得到我们的结果!
import string
def remove_punctuation(text):
# First, let's remove the punctuation.
# We do this by looping through each punctuation mark in the
# `string.punctuation` list, and then replacing that mark with
# the empty string and re-assigning that to the same variable.
for punc in string.punctuation:
text = text.replace(punc, '')
# Now our text is all de-punctuated! So let's make a list of
# the words, all lowercased, and return it in one go:
return text.lower().split()
在我看来,这个功能只有三行,这就是你所说的你想要的!
对于高级阅读器,您也可以使用functools
并在一行中执行此操作(为了便于阅读,我将其分为两部分,但它仍然是"一行"):
import string
import functools
def remove_punctuation(text):
return functools.reduce(lambda newtext, punc: newtext.replace(punc, ''),
punctuation, text).lower().split()