微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 是否有一种快速/最佳的方法来获取特定键的唯一值列表?

我想在集合中获取MongoDB中特定键的所有唯一值.我可以遍历整个集合来获取它们:

values = []
for item in collection.find():
    if item['key'] in values:
        pass
    else:
        values.append(item)

但这看起来非常低效,因为我必须检查每个条目,并且每次循环遍历列表(随着值的数量变高而变慢).或者,我可以将所有值放在一个列表中然后创建一个集合(我认为它更快,但我还没有试图弄清楚如何测试速度):

values = []
for item in collection.find():
    values.append(item['key'])
unique_values = set(values)

或者列表理解:

unique_values = set([item['key'] for item in collection.find()])

但我想知道是否有一个内置函数不需要循环整个集合(如果这些值存储在哈希表或其他东西),或者是否有更好的方法来获得它.

解决方法:

distinct()方法就是这样做的.它返回给定键的不同值的数组(列表):

unqiue_values = collection.distinct("key")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐