J'ai récemment rencontré du code Java qui mettait simplement des chaînes dans un TreeSet Java, implémentait un comparateur basé sur la distance, puis faisait son chemin au coucher du soleil pour calculer un score donné pour résoudre le problème donné.Equivalent TreeSet de Java en Python?
Mes questions,
Y at-il une structure de données équivalente disponibles pour Python? Le jeu d'arbres Java ressemble essentiellement à un dictionnaire ordonné qui peut utiliser un comparateur quelconque pour réaliser cet ordre. Je vois qu'il y a un PEP for Py3K pour un OrderedDict, mais j'utilise 2.6.x. Il y a un tas de mises en œuvre dictées ordonnées là-bas - quelqu'un en particulier qui peut être recommandé?
PS, Juste pour ajouter - je pourrait importer probablement DictMixin ou UserDict et mettent en place mon propre triés/commandé le dictionnaire, et pour y arriver grâce à une fonction de comparaison - mais qui semble être surpuissant.
Merci.
Mise à jour. Merci pour les réponses. Pour élaborer un peu, disons que j'ai une fonction de comparaison des thats définie comme, (donné une valeur particulière ln),
def mycmp(x1, y1, ln):
a = abs(x1-ln)
b = abs(y1-ln)
if a<b:
return -1
elif a>b:
return 1
else:
return 0
Je suis un peu incertain au sujet de la façon dont je l'intégrer dans l'ordre donné dans la dict ordonnée link given here...
Quelque chose comme,
OrderedDict(sorted(d.items(), cmp=mycmp(len)))
Idées serait la bienvenue.
Notez que 'OrderedDict' n'est pas comme Javas' TreeMap'. Commandé ici signifie que les éléments sont classés par temps d'insertion. Ce n'est pas ce que tu veux. Vous recherchez essentiellement un ensemble implémenté via des arborescences de recherche binaires. – Albert