Je suis un peu confus à propos de l' inopérateur python pour les ensembles.
Si j'ai un ensemble set une instance b, est-il vrai que cela b in ssignifie " y a-t-il un élément xdans stel qui b == xesttrue "?
Je suis un peu confus à propos de l' inopérateur python pour les ensembles.
Si j'ai un ensemble set une instance b, est-il vrai que cela b in ssignifie " y a-t-il un élément xdans stel qui b == xesttrue "?
Réponses:
Oui, mais cela signifie aussihash(b) == hash(x) que l'égalité des éléments n'est pas suffisante pour les rendre identiques.
C'est vrai. Vous pouvez l'essayer dans l'interpréteur comme ceci:
>>> a_set = set(['a', 'b', 'c'])
>>> 'a' in a_set
True
>>>'d' in a_set
False
a = 'a'; b = 'a'; a is b). Je l'ai essayé avec à la a = (1, 2, 3); b = (1, 2, 3); a == b; hash(a) == hash(b); a is b; a in set([b])place.
Oui, cela peut signifier ainsi, ou cela peut être un simple itérateur. Par exemple: Exemple comme itérateur:
a=set(['1','2','3'])
for x in a:
print ('This set contains the value ' + x)
De même comme chèque:
a=set('ILovePython')
if 'I' in a:
print ('There is an "I" in here')
modifié: modifié pour inclure des ensembles plutôt que des listes et des chaînes
Les chaînes, bien qu'elles ne soient pas des settypes, ont une inpropriété précieuse lors de la validation dans les scripts:
yn = input("Are you sure you want to do this? ")
if yn in "yes":
#accepts 'y' OR 'e' OR 's' OR 'ye' OR 'es' OR 'yes'
return True
return False
J'espère que cela vous aidera à mieux comprendre l'utilisation de incet exemple.
... or 'e' or 'es' or 's'. Pensez simplement à supprimer cette mauvaise réponse inutile.
Les sets se comportent différemment des dicts, vous devez utiliser des opérations set comme issubset ():
>>> k
{'ip': '123.123.123.123', 'pw': 'test1234', 'port': 1234, 'debug': True}
>>> set('ip,port,pw'.split(',')).issubset(set(k.keys()))
True
>>> set('ip,port,pw'.split(',')) in set(k.keys())
False