Estou um pouco confuso sobre o inoperador python para conjuntos.
Se eu tenho um conjunto se alguma instância b, é verdade que b in ssignifica " existe algum elemento xno sque b == xétrue "?
Estou um pouco confuso sobre o inoperador python para conjuntos.
Se eu tenho um conjunto se alguma instância b, é verdade que b in ssignifica " existe algum elemento xno sque b == xétrue "?
Respostas:
Sim, mas também significa hash(b) == hash(x), portanto, a igualdade dos itens não é suficiente para torná-los iguais.
Está certo. Você pode tentar no intérprete assim:
>>> a_set = set(['a', 'b', 'c'])
>>> 'a' in a_set
True
>>>'d' in a_set
False
a = 'a'; b = 'a'; a is b). Eu tentei com isso a = (1, 2, 3); b = (1, 2, 3); a == b; hash(a) == hash(b); a is b; a in set([b]).
Sim, pode significar isso ou pode ser um iterador simples. Por exemplo: Exemplo como iterador:
a=set(['1','2','3'])
for x in a:
print ('This set contains the value ' + x)
Da mesma forma como um cheque:
a=set('ILovePython')
if 'I' in a:
print ('There is an "I" in here')
editado: editado para incluir conjuntos em vez de listas e strings
As strings, embora não sejam settipos, têm uma inpropriedade valiosa durante a validação em 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
Espero que isso ajude você a entender melhor o uso indeste exemplo.
... or 'e' or 'es' or 's'. Considere apenas excluir essa resposta inutilmente errada.
Os conjuntos se comportam de maneira diferente dos dict, você precisa usar operações de conjunto como 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