请考虑以下示例
>>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(名字,*值) 添加值以设置名称
这是一个错误还是我错过了什么?
答案 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)
这应该可以解决问题。