如何在Redis中使用Python API使用sadd中的多个元素?

时间:2015-06-24 19:24:54

标签: python redis redis-py

请考虑以下示例

>>import redis
>>redis_db_url = '127.0.0.1'
>>r = redis.StrictRedis(host = redis_db_url,port = 6379,db = 0)
>>r.sadd('a',1)
>>r.sadd('a',2)
>>r.sadd('a',3)
>>r.smembers('a')

[+]输出:set(['1','3','2'])

>>r.sadd('a',set([3,4]))
>>r.smembers('a')

[+]输出:set(['1','3','2','set([3,4])'])

 >>r.sadd('a',[3,4])
 >>r.smember('a')

[+] set(['1','[3,4]','3','2','set([3,4])'])

根据https://redis-py.readthedocs.org/en/latest/中的官方文件     sadd(名字,*值)     添加值以设置名称

这是一个错误还是我错过了什么?

2 个答案:

答案 0 :(得分:21)

当您在参数列表中看到语法*values时,它意味着该函数采用可变数量的参数。

因此,请将其命名为

r.sadd('a', 1, 2, 3)

您可以使用splat运算符传递一个iterable来解压缩它:

r.sadd('a', *set([3,4]))

答案 1 :(得分:1)

请考虑以下事项:

r.sadd('a', 1, 2, 3)

这应该可以解决问题。