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”是初始字符串