2010-10-04 7 views
1

Est-ce possible de renvoyer un résultat db qui sorte par correspondance de densité dans ListPropertyGoogle App Engine Python - Tri densité ListProperty

Par exemple, j'ai une db.ListProperty(basestring) avec en dessous de la valeur:

list_A = ['a1','a2','a3','a4','a5'] 
list_B = ['b1','b2','b3','b4','b5'] 
list_C = ['a1','a2','b1','b2','b3'] 

donnant to_be_match_list = ['a1','b1','b2'] et renvoyer le résultat afin de densité correspondance

list_C première de retour, correspondant à a1, b1 et b2

l ist_B retour 2, correspondant à b1 et b2

list_A dernier retour, correspondant à a1

Merci à l'avance.

Répondre

4

Non, vous ne pouvez pas le faire dans BigTable (GQL).

Si vous avez pris tous les résultats, cependant, et je voulais les trier, vous pourriez faire quelque chose comme ceci:

some_lists = [list_A, list_B, list_C] 
some_lists.sort(key=lambda x: len(set(to_be_match_list) & set(x)), reverse=True) 
+0

grâce Ambre ... – Hotwater