j'utilise python, et j'ai une liste d'ensembles, construit comme ceci:Ajouter une valeur à un élément dans une liste des jeux
list = [set([])]*n
... où n est le nombre d'ensembles I vouloir dans la liste. Je veux ajouter une valeur à un ensemble spécifique dans la liste. Dites, le deuxième ensemble. J'ai essayé
list[1].add(value)
Mais ce qui ajoute à la place la valeur à chaque ensemble dans la liste. Ce comportement est assez non intuitif pour moi. Grâce à d'autres tests, je pense que j'ai trouvé le problème: la liste contient apparemment 10 instances du même ensemble, ou dix pointeurs vers le même ensemble, ou quelque chose. La construction de la liste par des appels répétés de
list.append(set([]))
m'a permis d'utiliser la syntaxe ci-dessus pour ajouter des éléments à des ensembles simples. Ma question est la suivante: que se passe-t-il exactement dans ma première technique de construction de listes? Il est clair que je ne comprends pas très bien la syntaxe. Aussi, existe-t-il un meilleur moyen d'initialiser une liste de n éléments? J'utilise cette syntaxe depuis un moment et c'est mon premier problème.
Comme une note de côté, 'set()' semble être une manière plus évidente d'écrire 'set ([]) '. –
Ah, merci pour le conseil. Je l'ai toujours vu avec les crochets à l'intérieur, je pensais qu'ils étaient obligatoires. Plus vous en savez! – Kapelson