我会尝试一下:
OrderedDict 是指以添加顺序来存储键的字典,而普通字典则不是这样。如果您查看 fromkeys
的文档,您会发现:
OD.fromkeys(S[, v]) -> 新的有序字典, 其中键从S取得。
因此,fromkeys
类方法使用输入可迭代对象 S 中的项作为键创建一个 OrderedDict
(在我的例子中是字符串中的字符)。在字典中,键是唯一的,因此 S
中的重复项将被忽略。
例如:
s = "abbcdece" # example string with duplicate characters
print(OrderedDict.fromkeys(s))
这将导致一个OrderedDict:
OrderedDict([('a', None), ('b', None), ('c', None), ('d', None), ('e', None)])
然后" ".join(some_iterable)
接受一个可迭代对象,并在这种情况下使用空格连接其元素。 它仅使用键,因为通过键迭代字典。 例如:
for k in OrderedDict.fromkeys(s):
print(k)
结果为:
a
b
c
d
e
随后,调用join方法:
print(" ".join(OrderedDict.fromkeys(s)))
将打印出:
a b c d e
使用set
有时候,人们会使用一个set来完成这个任务:
print( " ".join(set(s)))
但是与C++中的set不同,Python中的set不保证顺序。因此,使用set可以轻松获得唯一值,但它们可能与原始列表或字符串中的顺序不同(如上例所示)。
希望这能有一点帮助。