2024-10-01 19:19:02 发布
网友
在Java中,我们有HashSet<Integer>,我需要Python中类似的结构来使用contains,如下所示:
HashSet<Integer>
A = [1, 2, 3] S = set() S.add(2) for x in A: if S.contains(x): print "Example"
你能帮忙吗?
只需使用一套:
>>> l = set() >>> l.add(1) >>> l.add(2) >>> 1 in l True >>> 34 in l False
同样适用于列表:
>>> ll = [1,2,3] >>> 2 in ll True >>> 23 in ll False
编辑: 请注意@bholagabar在下面的评论,列表和元组中的in签入的时间复杂度平均为O(n)(请参见python文档here),而对于集合,它的时间复杂度平均为O(1)(最坏情况也是O(n),但非常罕见,只有在__hash__实现得不好的情况下才会发生)。
in
__hash__
只需使用一套:
同样适用于列表:
编辑: 请注意@bholagabar在下面的评论,列表和元组中的
in
签入的时间复杂度平均为O(n)(请参见python文档here),而对于集合,它的时间复杂度平均为O(1)(最坏情况也是O(n),但非常罕见,只有在__hash__
实现得不好的情况下才会发生)。相关问题 更多 >
编程相关推荐