python - 从python中的字符串中删除重复的单词

标签 python python-3.x

我一直致力于从输入字符串中删除重复的单词。为此,我使用了 OrderedDict。我尝试使用两种不同的方法来实现上述内容,这两种方法几乎相同,但程序的输出不同。谁能解释为什么会这样?

代码 1:

    from collections import OrderedDict
    data = "the an a the"
    data="".join(OrderedDict.fromkeys(data))
     print(data)

代码 2:

    from collections import OrderedDict   
    data = "the an a the"
    data = "".join(OrderedDict.fromkeys(data.split(" ")))   
    print(data)

代码1的输出:“the an” 代码2的输出:“theana” 我想知道为什么会造成这种差异,而且我希望得到的结果是“the an a”,那么如何得到呢?

最佳答案

在您的第一种方法中:

data="".join(OrderedDict.fromkeys(data))

基本上将变量 data 视为一个 iterable。在这种情况下,它会将 string 视为包含 unique 字符的 iterable。所以唯一字符将是 t,h,e,,a, n 和创建的有序字典共有 6 个键。


在您的第二种方法中:

data = "".join(OrderedDict.fromkeys(data.split("")))

您正在将字符串拆分到一个列表(这意味着可迭代)。并且列表元素是 theana 并且有序字典是使用 3 唯一值作为键创建的.

在最后一步,您将加入它们,这意味着只有键将作为字符串返回。

希望这对您有所帮助。

关于python - 从python中的字符串中删除重复的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56833236/

相关文章:

python - 谷歌应用程序引擎批量加载器 "Unexpected Thread Death"

python - 两个简单递归函数的大 O 表示法

python - 如何通过鼠标中键在QGraphicsView 中滚动QGraphicsScene?

python-3.x - Zipline 导入错误。没有名为 zipline.transforms 的模块

python - 如何根据 sale_order_line 中的自定义日期时间字段更新 stock_move 文档中的 date_expected 值

Python警告信息输出

python - 如何使用基于numpy中日期的窗口获取时间序列的回顾移动平均值?

python-3.x - While 循环未按预期存在

python - 查找以辅音开头和结尾的单词

Python:使用列表理解生成几何级数