18

请考虑以下示例

>>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')

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

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

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

4

2 回答 2

34

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

因此,将其称为

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

你可以通过使用 splat 操作符来解压它来传递一个可迭代对象:

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

或者

r.sadd('a', *[3, 4])
于 2015-06-24T20:04:43.987 回答
3

考虑以下:

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

这应该够了吧。

于 2015-06-24T20:00:38.220 回答