Redis - Pyredis在SET上迭代来自SINTER的结果

时间:2016-08-03 07:37:01

标签: python redis

我有2个SET结构,添加了以下值:

r.sadd("clONE", 'abc')
r.sadd("clONE", 'def')
r.sadd("clONE", 'ghi')

r.sadd("TWO", 'abc')
r.sadd("TWO", 'def')

print(r.sinter("clONE", "TWO"))
 OUTPUT: set(['abc', 'def'])

我如何获得价值' abc'并且' def'使用pyredis离开SET()?我尝试通过指定数组索引[0]使用数组语法,但得到以下错误

print(r.sinter("clONE", "TWO")[0])

TypeError: 'set' object does not support indexing

1 个答案:

答案 0 :(得分:1)

集未编入索引。顺序取决于内部哈希。 永远不要依赖集合中的顺序,即使它看起来合乎逻辑。

您可以执行以下操作:

s = r.sinter("clONE", "TWO")

# iterate through the set, unsorted
for i in s:
    print(i)

l = sorted(s)  # returns a sorted list (alphanum)
print(l[0])  # will print 'abc'