编程语言
首页 > 编程语言> > Python:关于GQuery结果集的DISTINCT(GQL,GAE)

Python:关于GQuery结果集的DISTINCT(GQL,GAE)

作者:互联网

想象一下,您在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'])
>>> 

第一个答案的一个建议是,设置和决策在快速检索唯一结果方面更好,列表中的成员资格对于其他类型是O(n)对O(1),因此如果要存储其他数据,或做一些像创建提到的unique_results列表,做一些像这样的事情可能会更好:

unique_results = {}
>>> for item in a:
    unique_results[item] = ''


>>> unique_results
{'livejournal.com': '', 'google.com': '', 'stackoverflow.com': ''}

标签:gql,python,sql,google-app-engine,distinct
来源: https://codeday.me/bug/20190929/1830829.html