小编典典

字符串中所有唯一字符的列表?

python

我想将字符添加到字符串中,但要确保最终列表中的所有字母都是 唯一的

例如:"aaabcabccd""abcd"

现在,我当然想到了两种解决方案。一种是使用list,它将字符与ASCII码映射。因此,每当我遇到一个字母时,它都会将索引设置为True。之后,我将扫描列表并附加所有已设置的列表。时间复杂度为
O(n)

另一个解决方案是使用dict和遵循相同的过程。映射完每个字符后,我将对字典中的每个键进行操作。这也将具有 线性 运行时间。

由于我是Python新手,所以我想知道哪种方法更节省空间。哪一个可以更有效地实施?

PS :创建列表时顺序 并不 重要。


阅读 215

收藏
2020-12-20

共1个答案

小编典典

最简单的解决方案可能是:

In [10]: ''.join(set('aaabcabccd'))
Out[10]: 'acbd'

请注意,即使示例中另有说明,也不能保证字母在输出中出现的顺序。

您将输出称为“列表”。如果列表是您真正想要的,请替换''.joinlist

In [1]: list(set('aaabcabccd'))
Out[1]: ['a', 'c', 'b', 'd']

就性能而言,在此阶段担心它听起来像过早的优化。

2020-12-20