Dans Java nous avons HashSet<Integer>
, J'ai besoin d'une structure similaire dans Python pour utiliser contient comme ci-dessous:
A = [1, 2, 3]
S = set()
S.add(2)
for x in A:
if S.contains(x):
print "Example"
S'il te plait peux-tu aider?
Il suffit d'utiliser un ensemble:
>>> l = set()
>>> l.add(1)
>>> l.add(2)
>>> 1 in l
True
>>> 34 in l
False
Le même fonctionne pour les listes:
>>> ll = [1,2,3]
>>> 2 in ll
True
>>> 23 in ll
False
Edit: Remarquez le commentaire de @ bholagabbar selon lequel la complexité temporelle de in
vérifie les listes et les tuples est O(n) en moyenne (voir le python docs ici ), alors que pour les ensembles, il est en moyenne O(1) = (pire des cas aussi O (n), mais est très rare et ne peut se produire que si __hash__
est mal implémenté).