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

How to use sadd with multiple elements in Redis using Python API?

请考虑以下示例

>>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/中的官方文档 悲伤(名称,*值) 添加值以设置名称

这是错误还是我遗漏了什么?

考虑以下因素:

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

这应该可以解决问题。

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

因此,称其为

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

您可以通过使用 splat 运算符将其解包来传递可迭代对象:

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

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