python - potencia - programa de conjuntos
¿Conjunto vacío literal? (7)
Agregando a las ideas locas: con Python 3 aceptando identificadores Unicode, podría declarar una variable ϕ = frozenset() (ϕ es U + 03D5) y usarla en su lugar.
[] = list vacía
() = tuple vacía
{} = dict vacío
¿Hay una notación similar para un set vacío? ¿O tengo que escribir set() ?
Depende de si desea el literal para una comparación, o para la asignación.
Si desea vaciar un conjunto existente, puede usar el .clear() , especialmente si desea evitar la creación de un nuevo objeto. Si desea hacer una comparación, use set() o verifique si la longitud es 0.
ejemplo:
#create a new set
a=set([1,2,3,''foo'',''bar''])
#or, using a literal:
a={1,2,3,''foo'',''bar''}
#create an empty set
a=set()
#or, use the clear method
a.clear()
#comparison to a new blank set
if a==set():
#do something
#length-checking comparison
if len(a)==0:
#do something
No, no hay sintaxis literal para el conjunto vacío. Tienes que escribir set() .
Por todos los medios, use set() para crear un conjunto vacío.
Pero, si quieres impresionar a la gente, diles que puedes crear un conjunto vacío usando literales y * con Python> = 3.5 ( ver PEP 448 ) haciendo:
>>> s = {*()} # or {*{}} or {*[]}
>>> print(s)
set()
esta es básicamente una forma más condensada de hacer {_ for _ in ()} , pero no hagas esto.
Si desea inicializar el conjunto vacío, aplique debajo del código. este es funciona perfectamente para mí en python 3:
object = set([])
object = object.union([1,2,3,4]) #set operation.
Solo para extender la respuesta aceptada:
Desde la versión 2.7 y 3.1 python tiene un set literal {} en forma de uso {1,2,3} , pero {} todavía se usa para dict. Vacío.
Python 2.7 (la primera línea no es válida en Python <2.7)
>>> {1,2,3}.__class__
<type ''set''>
>>> {}.__class__
<type ''dict''>
Python 3.x
>>> {1,4,5}.__class__
<class ''set''>
>>> {}.__class__
<type ''dict''>
Más aquí: https://docs.python.org/3/whatsnew/2.7.html#other-language-changes
utilízalo así a = set
o
a = {0,1}