Créer un ensemble d’ensembles en Python

Créer un ensemble d’ensembles en Python #

Les objets Set ne sont pas hachables, donc nous ne pouvons pas créer un ensemble de sets. Cependant, nous
pouvons créer un set de frozensets ou une liste de listes. Les objets Set ne peuvent pas être
membre d’un autre set car ils sont mutables et non hachables.

set_of_sets = set()



set_of_sets.add(frozenset(['bobby', 'hadz']))
set_of_sets.add(frozenset(['.', 'com']))


print(set_of_sets)





list_of_lists = [
    ['bobby', 'hadz'],
    ['.', 'com']
]

print(list_of_lists)  

Le premier exemple crée un set de frozenset objets.

On ne peut pas utiliser un set comme membre d’un autre set ou comme clé dans un dictionnaire car set les objets sont mutables et indéchiffrables.

Un moyen de contourner ce problème est d’utiliser un objet frozenset.

set_of_sets = set()

set_of_sets.add(frozenset(['bobby', 'hadz']))
set_of_sets.add(frozenset(['.', 'com']))


print(set_of_sets)

Nous avons utilisé un frozenset
au lieu d’un set. Le site frozenset prend un itérable comme argument.

Un frozenset est une version immuable de la classe Python set Python, de sorte qu’il peut être utilisé comme élément dans un autre objet set ou comme clé dans un dictionnaire.

Vous pouvez également utiliser les tuples qui contiennent des éléments immuables comme élément d’un fichier
set.

set_of_sets = set()

set_of_sets.add(('bobby', 'hadz'))
set_of_sets.add(('.', 'com'))


print(set_of_sets)

Les objets Tuple sont immuables et peuvent être hachés.

La plupart des objets intégrés immuables de Python sont hachables, alors que les objets mutables ne le sont pas.
ne sont pas hachables.

Si un objet est hachable, il peut être utilisé comme clé dans un dictionnaire et comme élément d’un objet setcar ces structures de données utilisent la valeur de hachage en interne.

Les objets hachables comprennent – str, int, bool, tuple, frozenset.

Les objets inabordables comprennent – list, dict, set.

Notez que tuples et frozensets ne sont hachables que si leurs éléments sont
hachables.

Vous pouvez également utiliser une liste de listes.

list_of_lists = [
    ['bobby', 'hadz'],
    ['.', 'com']
]

print(list_of_lists)  

print(list_of_lists[0])  
print(list_of_lists[0][0])  

Une liste de listes est beaucoup plus facile à utiliser qu’un fichier set de frozenset d’objets si cela
si cela convient à votre cas d’utilisation.

Laisser un commentaire