Python 如何删除句子中顺序重复的单词?
我有以下字符串Python 如何删除句子中顺序重复的单词?,python,regex,Python,Regex,我有以下字符串 s = [ "2019 2019", "he is angry angry", "she is hungry" ] 我需要在同一个字符串中删除所有顺序重复的单词或数字 预期产出: s = [ "2019" "he is angry", "she is hungry" ] 如何使用正则表达式执行此操作?您可以使用有序集-> # pip
s = [
"2019 2019",
"he is angry angry",
"she is hungry"
]
我需要在同一个字符串中删除所有顺序重复的单词或数字
预期产出:
s = [
"2019"
"he is angry",
"she is hungry"
]
如何使用正则表达式执行此操作?您可以使用有序集->
# pip install ordered_set
from ordered_set import OrderedSet
s = [
"2019 2019",
"he is angry angry",
"she is hungry"
]
result =[' '.join(OrderedSet(i.split())) for i in s]
输出-
['2019', 'he is angry', 'she is hungry']
我打算提出同样的建议——清洁的解决方案。为了使空间分割更加明显,我会这样做:
sep=“”
。然后,i.split(sep)
。它不适用于:“好吧,相当于2020年前一年半,2019年。”@Fluxy它是边缘案例之一——这里的“2019”和“2019”。是两个不同的单词,因为结尾有一个额外的点。是的,我知道。我应该在结尾去掉点,还是有一个灵活的解决方法?如果你不需要的话,我会说删除所有标点符号。您可以使用-s.translate(str.maketrans(“”,,,string.标点符号))来删除它们这里的“s”是初始字符串