0
votes

Puis-je faire la valeur de l'âge calculable en fonction de l'année de naissance dans un dictionnaire?

Je suis nouveau à Python, et je veux savoir s'il y a un moyen de rendre la valeur de l'âge calculée à l'aide de l'année de naissance qui est un article avec l'âge du même dictionnaire.

C'est ce qu'il est venu Mon esprit, et je pense qu'il y a un moyen simple, comme celui-ci sans utiliser de variables supplémentaires de fonctions. xxx

toute aide serait appréciée. Merci!


2 commentaires

Comment addition ( + ) donne l'âge? Vous devez soustraire ( - ).


Vous ne pouvez pas faire référence à quelque chose qui n'a pas encore devenu un objet pourtant de devenir un objet ... donc la personne [«weeknow»] etc ... ne peut pas fonctionner .... Depuis que vous avez déjà 2019 et 1995 , probablement de quelque part, ne pouvez-vous pas simplement utiliser cela, ça ou ... la définir ensuite? Aussi ... qu'est-ce que vous vous attendiez à ce que quelqu'un ait soudainement personne ["année"] = 1994 ?


3 Réponses :


-2
votes

Vous pouvez avoir un dictionnaire auto-référentiel en utilisant une classe dérivée de dict code> mais dict code> ne dispose pas de cette capacité. Le code suivant est pris à partir de cette réponse .

class MyDict(dict):
   def __getitem__(self, item):
       return dict.__getitem__(self, item) % self

dictionary = MyDict({

    'user' : 'gnucom',
    'home' : '/home/%(user)s',
    'bin' : '%(home)s/bin' 
})


print dictionary["home"]
print dictionary["bin"]


3 commentaires

La sous-classement des dicts (ou de tout type intégré OBJ) est une mauvaise idée, un dict vide est une fausseté, un dict vide dérivé est de la vérité, vous devrez réimplanter beaucoup, ils ne sont pas censés être sous-classées.


@Adityashankar Je suis complètement d'accord avec vous, tandis que ma seule intention était de répondre à la question sans toucher son utilité. Mais votre précieux commentaire devrait également être noté.


@Adityashankar Pas toujours une mauvaise idée ... Pas nécessairement le bon choix ... Sous-classement à partir de Collections.userdict est probablement là où vous voulez aller la plupart du temps, mais parfois sous-classement directement à partir de dict est ce qui est nécessaire (dépend de combien vous pourriez avoir besoin de remplacer ... - si ce n'est que 1/2 fonction et que le reste va bien, puis la sous-classe directement, si c'est beaucoup, puis utilisez les mélanges )



0
votes

Oui, vous pouvez Juste pas décaltrez l'ensemble de la dicte dans un acte xxx

mais dans votre exemple, vous ne devriez pas changer quoi que ce soit, car il n'y a aucun moyen de le simplifier (facilement). Ma solution ne doit être utilisée que dans des tâches compliquées. Je viens de vous le moyen de le simplifier en cas d'énorme quantité de valeurs en dict.


1 commentaires

Merci beaucoup, cela m'a aidé beaucoup



0
votes

Au lieu de la codage du captage de l'année en cours, vous pouvez obtenir Python de vous le donner

{'name': 'Jane', 'yearofbirth': 1991, 'age': 24}


1 commentaires

Merci pour votre suggestion, c'est utile aussi