12
votes

Tuples dans les dict

est-il possible dans Python d'ajouter un tuple comme une valeur dans un dictionnaire?
Et si c'est le cas, comment pouvons-nous ajouter une nouvelle valeur, alors? Et comment pouvons-nous supprimer et le changer?


1 commentaires

Ajoutez une nouvelle valeur à un dictionnaire? Ajoutez une nouvelle valeur au tuple dans le dictionnaire? Lequel est-ce?


4 Réponses :


28
votes
>>> b = {(23, 32): 'tuple as key'}
>>> b
{(23, 32): 'tuple as key'}
>>> b[23, 32] = 42
>>> b
{(23, 32): 42}

0 commentaires

2
votes

Vous ne pouvez pas changer de tuple lui-même. Vous devez le remplacer par un autre tuple différent.

Lorsque vous utilisez une liste, vous pouvez également ajouter des valeurs à celui-ci (changer la liste elle-même) sans avoir besoin de le remplacer: P>

>> a = {'list': (23, 32)}
>> a
{'list': [23, 32]}
>> a['list'].append(99)
>> a
{'list': [23, 32, 99]}


2 commentaires

Vous semblez manquer certaines parties


@SilentGhost: Ne soyez pas timide, dites-le-moi! BTW: Je n'ai pas eu l'intention de donner une réponse complète, puisque vous avez déjà donné de bons conseils. Je voulais seulement ajouter des informations sur les listes.



7
votes

Puisque les tuples sont immuables , vous ne pouvez pas ajouter de valeur au tuple. Ce que vous peut faire, construit un nouveau tuple à partir du tuple actuel et une valeur supplémentaire. L'opérateur + = cela est-ce pour vous, à condition que l'argument de gauche soit une variable (ou dans ce cas une valeur de dictionnaire): xxx

Peu importe, si vous prévoyez de planifier Modification de la valeur TUPLE, peut-être qu'il vaut mieux stocker des listes? Ceux-ci sont mutables.

EDIT: Depuis que vous Mise à jour Votre question , observez les éléments suivants: xxx

Cela se produit car, comme indiqué précédemment, les tuples sont immuables. Vous ne pouvez pas les changer. Si vous voulez les changer, vous devrez en créer un nouveau. Ainsi: xxx

comme une note latérale , vous pouvez utiliser NamedTuple s. Ils travaillent comme des tuples réguliers, mais vous permettent de vous référer à des éléments dans le tuple par nom : xxx


† < / sup>: la prochaine fois, veuillez éditer votre question actuelle. ne pas poster une réponse contenant uniquement des questions supplémentaires. Ce n'est pas un forum.


0 commentaires

1
votes
persons = {}
person = Person()
persons[person.id] = person
person.name = "something"

persons[1].name = "something else"

2 commentaires

Merci beaucoup! Mais tu sais ... je suis un débutant en python..et je n'ai pas vraiment "obtenez" votre réponse! Je préfère, dans mes premières marches de Python pour le faire de manière facile; (Je me sens stupide ... mais .... :(


Je pensais que ça. Ceci est tout ce que vous pouvez taper sur la ligne de commande Python, pour que vous puissiez jouer avec. La classe de la personne vous montre une solution alternative, plus structurée, de résoudre ce genre de problèmes.