web-dev-qa-db-fra.com

Videz-vous littéralement?

[] = vide list

() = vide Tuple

{} = vide dict

Existe-t-il une notation similaire pour un set vide? Ou dois-je écrire set()?

404
Johan Råde

Non, il n'y a pas de syntaxe littérale pour l'ensemble vide. Vous devez écrire set().

451
sepp2k

Juste pour prolonger la réponse acceptée:

A partir de la version 2.7 et 3.1 python a set littéral {} sous la forme de son utilisation {1,2,3}, mais {} lui-même toujours utilisé pour le dict vide.

Python 2.7 (la première ligne n'est pas valide dans Python <2.7)

>>> {1,2,3}.__class__
<type 'set'>
>>> {}.__class__
<type 'dict'>

Python 3.x

>>> {1,4,5}.__class__
<class 'set'>
>>> {}.__class__
<type 'dict'>

Plus ici: https://docs.python.org/3/whatsnew/2.7.html#other-language-changes

42
Reishin

Bien sûr, veuillez utiliser set() pour créer un ensemble vide.

Mais si vous voulez impressionner les gens, dites-leur que vous pouvez créer un ensemble vide en utilisant des littéraux et * avec Python> = 3.5 ( voir PEP 448 ) en Faire:

>>> s = {*()}  # or {*{}} or {*[]}
>>> print(s)
set()

c'est fondamentalement une manière plus condensée de faire {_ for _ in ()}, mais ne faites pas ceci.

35

Cela dépend si vous voulez le littéral pour une comparaison ou pour une affectation.

Si vous souhaitez vider un ensemble existant, vous pouvez utiliser la méthode .clear(), en particulier si vous souhaitez éviter de créer un nouvel objet. Si vous voulez faire une comparaison, utilisez set() ou vérifiez si la longueur est 0.

exemple:

#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
5
Brian Minton

Ajoutant aux idées folles: avec Python 3 acceptant les identifiants Unicode, vous pouvez déclarer une variable ϕ = frozenset() (est U + 03D5) et l’utiliser à la place.

2
Renato Garcia

si vous souhaitez initialiser un ensemble vide, appliquez le code ci-dessous. celui-ci fonctionne parfaitement pour moi en python 3:

object = set([])
object = object.union([1,2,3,4]) #set operation.
1
bhargav patel