Forum Programmation.python Dictionnaires et clés interdites

Posté par  .
Étiquettes : aucune
0
9
oct.
2006
Bonjour,

Je recherche un moyen d'utiliser des dictionnaires indexés par des clés contenant des caractères interdits comme par exemple: 'google.com'

Je pensais à une solution qui serait de faire un hash de la clé afin de supprimer tout caractères non alphanumérique.

Du genre :
test = {}
test[md5('google.com')] = 'qqchose'

Etant débutant en Python, je me demande si c'est la solution la plus propre, qu'en pensez vous ?
  • # bizarre

    Posté par  . Évalué à 2.

    excuse moi, mais je ne voit pas de quelques caractères interdit tu parles. normalement, tu peux utiliser n'importe quel caractère comme index.

    Exemple :
    >>> t={}
    >>> t[u'é@à']=1
    >>> t
    {u'\xe9@\xe0': 1}
    >>> t[u'é@][à']=1
    >>> t
    {u'\xe9@][\xe0': 1, u'\xe9@\xe0': 1}
    >>> t['é@][à']=1
    >>> t
    {u'\xe9@][\xe0': 1, u'\xe9@\xe0': 1, '\x82@][\x85': 1}

    donc, je ne comprends pas trop ton problème.

    Ceci dit, utiliser un md5 peut aussi être une idée intéressante. Ca dépend (ca dépasse) :-D
    • [^] # Re: bizarre

      Posté par  . Évalué à 2.

      ...

      je devai etre trop fatigué hier soir, il me semblait que j'avais testé avec un "." et ça passait pas ... bon ... désolé du temps perdu ^_^

      (fabien recherche une cachette)
      • [^] # Re: bizarre

        Posté par  . Évalué à 1.

        Surtout, que généralement, utiliser des clés de hashage c'est pour gagner du temps. Or, générer un MD5, c'est pas ce qu'il y a de mieux en terme de rapidité surtout qu'après, la dictionnaire gère sa propre clé de hashage après.
        • [^] # Re: bizarre

          Posté par  . Évalué à 2.

          Oui, j'ai dis md5 pour l'exemple, je pense qu'il doit exister des algos plus simple pour hasher de simple chaine de caractère.
          • [^] # Re: bizarre

            Posté par  (site web personnel) . Évalué à 2.

            Python implémente déjà de tels algos:
            hash("coucou") -> 2023850036
            Et il les utilise pour les tables de hachage des dictionnaires.

            Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.