在Python中使用strip()方法和标点符号

时间:2016-10-08 23:29:30

标签: python strip

我已经尝试解决这个问题几个小时了,并且无法找到正确的解决方案,这就是问题:

使用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

1 个答案:

答案 0 :(得分:0)

你的代码中有几处......好吧,我不确定为什么他们会在那里,说实话,哈哈。让我们共同努力吧!

我假设您收到了一些文字:text = "My hovercraft is full of eels!"。让我们将其拆分为单词,将单词设为小写,并删除所有标点符号。我们知道我们需要string.punctuationstr.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()