Bor*_*pov 36 python contains hashset
在Java中我们有HashSet<Integer>,我需要在Python中使用类似的结构包含如下所示:
A = [1, 2, 3]
S = set()
S.add(2)
for x in A:
if S.contains(x):
print "Example"
Run Code Online (Sandbox Code Playgroud)
能否请你帮忙?
ttt*_*sss 50
只需使用一套:
>>> l = set()
>>> l.add(1)
>>> l.add(2)
>>> 1 in l
True
>>> 34 in l
False
Run Code Online (Sandbox Code Playgroud)
列表同样适用:
>>> ll = [1,2,3]
>>> 2 in ll
True
>>> 23 in ll
False
Run Code Online (Sandbox Code Playgroud)
编辑:
注意@bholagabbar下面的评论in,列表和元组中的检查的时间复杂度平均为O(n)(参见此处的python文档),而对于集合,它平均为O(1)(最坏情况也是O(n) ),但非常罕见,只有在__hash__实施不当时才会发生).
小智 6
在Python中,有一个内置类型,set. 与Java中的主要区别在于hashmapPython是没有类型的,即在Python中set拥有集合是合法的。{'2', 2}
该类set没有contains()现成的方法来实现。我们通常使用 Python 关键字in来完成您想要的操作,即
A = [1, 2, 3]
S = set()
S.add(2)
for x in A:
if x in S:
print("Example")
Run Code Online (Sandbox Code Playgroud)
如果这对您不起作用,您可以调用特殊方法__contains__(),但不鼓励这样做。
A = [1, 2, 3]
S = set()
S.add(2)
for x in A:
if S.__contains__(x):
print("Example")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56982 次 |
| 最近记录: |