如何将Python列表与SQLAlchemy集合进行比较?use contains() to test for membershipgr = AGroup.query.filter_by(users=sorted(members)).first()但是,由于用户是sqlalchemy集合,这是行不通的。基本类结构- users
- name
python wiki说:“使用集合和字典测试成员关系比搜索序列O(n)快得多。当测试‘a in b’时,b应该是一个集合或字典,而不是列表或元组。”在我的代码中,只要速度很重要,我就一直在使用集合代替列表,但最近我一直在想,为什么集合比列表快得多。有没有人能给我解释一下,或者给我一个可以解释的来源,在python的幕后到底是怎么回事才能更快地制作套装?
现在,如果我对集合执行add(a)操作,即使集合中只有len(myset) == 1对象,Python也会正确地假定为a in myset and b in myset。
这一点很清楚。但是,现在是否可以仅使用b从集合中提取a的值呢?假设对象是可变的,在忘记了对a的直接引用的情况下,我想同时更改它们。换句话说,我正在寻找myset[b]操作,它将精确地返回集合的成员a。在我看来,类型set不能做到这一点(比迭代它的所有成员更快)。如果是这样的话,是否至少有一个有效的变通