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

Sou*_*kar 10 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')
Run Code Online (Sandbox Code Playgroud)

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

>>r.sadd('a',set([3,4]))
>>r.smembers('a')
Run Code Online (Sandbox Code Playgroud)

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

 >>r.sadd('a',[3,4])
 >>r.smember('a')
Run Code Online (Sandbox Code Playgroud)

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

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

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

nne*_*neo 25

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

因此,称之为

r.sadd('a', 1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

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

r.sadd('a', *set([3,4]))
Run Code Online (Sandbox Code Playgroud)