Estoy un poco confundido acerca del operador python en sets.operador del conjunto "en" Python
Si tengo un conjunto en python s y alguna instancia b, ¿es cierto que "b en s" significa "¿hay algún elemento x en s tal que b == x es verdadero"?
Estoy un poco confundido acerca del operador python en sets.operador del conjunto "en" Python
Si tengo un conjunto en python s y alguna instancia b, ¿es cierto que "b en s" significa "¿hay algún elemento x en s tal que b == x es verdadero"?
Sí, pero también significa hash(b) == hash(x)
, por lo que la igualdad de los elementos no es suficiente para que sean iguales.
Sí. Significa que el elemento dado está en el conjunto.
Para que quede claro. por "está en el conjunto" quiere decir "a == b" y no "a es b", ¿correcto? – Dejas
Correcto. Usted podría intentar que en el intérprete de esta manera:
>>> a_set = set(['a', 'b', 'c'])
>>> 'a' in a_set
True
>>>'d' in a_set
False
Fyi, 'sets' está en desuso. 'set()' es un built-in desde hace bastante tiempo. – ThiefMaster
Oh, por supuesto. Perdón :) Cambio mi muestra ... –
Esta no es una muy buena prueba ya que las constantes de cadena a menudo se internan (intente 'a =' a '; b =' a '; a es b'). Lo intenté con 'a = (1, 2, 3); b = (1, 2, 3); a == b; hash (a) == hash (b); a es b; a en conjunto ([b]) 'en su lugar. – Philipp
cuerdas, aunque no son set
tipos, tienen una valiosa propiedad in
durante la validación en los 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 esto le ayuda a comprender mejor el uso de in
con este ejemplo.
Eso no es un conjunto. Tampoco son cadenas mutables. –
No sé lo que estaba pensando ... tienes razón. – Droogans
'... o 'e' o 'es' o 's''. Considere la posibilidad de eliminar esta respuesta inútilmente incorrecta. – Quuxplusone
Sí, puede significar eso, o puede ser un simple iterador. Por ejemplo: Ejemplo como iterador:
a=set(['1','2','3'])
for x in a:
print ('This set contains the value ' + x)
Del mismo modo como un cheque:
a=set('ILovePython')
if 'I' in a:
print ('There is an "I" in here')
Editado: Editado para incluir series en vez de listas y cadenas
¿Qué tiene esto que ver con los conjuntos? –
Bueno, supongo que se puede considerar que una lista o incluso una cadena tienen propiedades similares a un conjunto. Son una colección de elementos. –
No, los conjuntos tienen una condición adicional para una verificación de contención que las secuencias no hacen. –
Es usted un matemático? Describiendo cosas simples de una manera excesivamente compleja ...;) – ThiefMaster
Computer Scientist. Estoy un poco confundido porque la documentación dice "Prueba x para membresía en s". Para mí eso podría significar que "la instancia x está contenida en s" o "existe alguna instancia en s que tiene el mismo valor que x". No sé si esta es una comparación de identidad o igualdad. – Dejas
@Dejas: como sabe que Python tiene dos operadores Comparación de igualdad y comparación de identidad, debería poder construir un experimento que confirme cada uno. Ayudaría si publicaras ese experimento. –