从用户输入的单词中删除标点符号并创建集合

时间:2013-12-03 08:03:46

标签: python

我想知道如何从用户输入中删除标点符号并从输入中的单词创建一个集合。到目前为止,我有这个。

input_set = set(self.entry.get().lower().split(' '))

3 个答案:

答案 0 :(得分:4)

使用str.translate

Python2:

>>> from string import punctuation
>>> s = 'sfda%$$sdafd dasf564%^%^, hgghg%#56'
>>> set(s.translate(None, punctuation).split())
set(['hgghg56', 'dasf564', 'sfdasdafd'])

Python3:

from string import punctuation
s = 'sfda%$$sdafd dasf564%^%^, hgghg%#56'
tab = dict.fromkeys(map(ord, punctuation))
print (set(s.translate(tab).split()))

答案 1 :(得分:4)

这是使用正则表达式的绝佳场所:

import re
re.split(r'\W+',str)

取决于您认为标点符号的内容,您可能希望将'\ W'更改为其他字符类或字符组。

答案 2 :(得分:0)

  1. 删除标点符号:请参阅Best way to strip punctuation from a string in Python

  2. 创建一组字词:set(sentence.split(' '))