Python:GTIN结果集(GQL,GAE)上的DISTINCT
假设您在Google App Engine数据存储区中有一个实体,该实体存储匿名用户的链接。您想执行以下不支持的SQL查询:
SELECT DISTINCT user_hash FROM links
相反,您可以使用:
user = db.GqlQuery("SELECT user_hash FROM links")
如何 最有效 地使用Python过滤结果,从而返回DISTINCT结果集?如何计算DISTINCT结果集?
-
设置是处理此问题的好方法:
>>> a = ['google.com', 'livejournal.com', 'livejournal.com', 'google.com', 'stackoverflow.com'] >>> b = set(a) >>> b set(['livejournal.com', 'google.com', 'stackoverflow.com']) >>>
一个建议w / r /
t第一个答案是,集和字典更适合快速检索唯一结果,列表中的成员资格为O(n)与其他类型的O(1),因此如果要存储其他数据,或执行类似创建上述unique_results
列表的操作,最好执行以下操作:unique_results = {} >>> for item in a: unique_results[item] = '' >>> unique_results {'livejournal.com': '', 'google.com': '', 'stackoverflow.com': ''}