2

创建一个 Python 程序,将字符串转换为列表,使用循环删除任何标点符号,然后将列表转换回字符串并打印不带标点符号的句子。

punctuation=['(', ')', '?', ':', ';', ',', '.', '!', '/', '"', "'"]

str=input("Type in a line of text: ")

alist=[]
alist.extend(str)
print(alist)

#Use loop to remove any punctuation (that appears on the punctuation list) from the list

print(''.join(alist))

这就是我到目前为止所拥有的。我尝试使用类似的东西:alist.remove(punctuation)但我收到一个错误,说类似list.remove(x): x not in list. 一开始我没有正确阅读这个问题,并意识到我需要通过使用循环来做到这一点,所以我将其添加为评论,现在我被卡住了。但是,我成功地将它从列表转换回字符串。

4

4 回答 4

5
import string
punct = set(string.punctuation)

''.join(x for x in 'a man, a plan, a canal' if x not in punct)
Out[7]: 'a man a plan a canal'

解释:string.punctuation预定义为:

'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

剩下的就是直截了当的理解。Aset用于加速过滤步骤。

于 2013-10-16T21:35:50.290 回答
2

我找到了一个简单的方法:

punctuation = ['(', ')', '?', ':', ';', ',', '.', '!', '/', '"', "'"]
str = raw_input("Type in a line of text: ")

for i in punctuation:
  str = str.replace(i,"")

print str

通过这种方式,您将不会收到任何错误。

于 2013-10-16T21:30:42.883 回答
1
punctuation=['(', ')', '?', ':', ';', ',', '.', '!', '/', '"', "'"]
result = ""
for character in str:
   if(character not in punctuation):
       result += character
print result
于 2013-10-16T21:28:43.440 回答
-1

这是如何使用 python 标记给定语句的答案。我使用的 python 版本是 3.4.4 假设我有保存为 one.txt 的文本。然后我将我的python 程序保存在我的文件所在的目录中(即one.txt)。以下是我的python程序:

with open('one.txt','r')as myFile: str1=myFile.read() print(str1)# 这是用标点符号打印给定的语句(在删除标点符号之前)# 以下是列表我们需要删除的标点符号,如果我忘记了标点符号 = ['(', ')', '?', ':', ';', ',', '.', '!', '/ ', '"', "'"]
for i in punctuation: str1 = str1.replace(i," ") #把标点所在的地方清空 myList=[] myList.extend(str1.split(" ")) print (str1) #这是为 myList 中的 i 打印不带 puctions 的给定语句(删除标点符号后):# print ("____________") print(i,end='\n') print ("____________")

==============接下来我会为您发布如何删除停用词============ 直到让您评论是否有用。谢谢

于 2017-01-04T10:53:53.397 回答