我一直致力于从输入字符串中删除重复的单词。为此,我使用了 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("")))
您正在将字符串拆分到一个列表(这意味着可迭代)。并且列表元素是 the
、an
、a
并且有序字典是使用 3 唯一值作为键创建的.
在最后一步,您将加入它们,这意味着只有键将作为字符串返回。
希望这对您有所帮助。
关于python - 从python中的字符串中删除重复的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56833236/