一尘不染

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

redis

请考虑以下示例

>>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/zh-CN/latest/中的官方文档, sadd(name,* values)添加值以设置名称

那是一个错误还是我错过了一些东西?


阅读 641

收藏
2020-06-20

共1个答案

一尘不染

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

因此,将其称为

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

您可以通过使用splat运算符来传递可迭代对象以对其进行解压缩:

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

要么

r.sadd('a', *[3, 4])
2020-06-20