Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在redis排序集中存储元组的python列表,其中元组的第二个元素用作分数_Python_Redis_Redis Py - Fatal编程技术网

在redis排序集中存储元组的python列表,其中元组的第二个元素用作分数

在redis排序集中存储元组的python列表,其中元组的第二个元素用作分数,python,redis,redis-py,Python,Redis,Redis Py,我有一个元组的Python列表,如下所示: lst = [(22, -150.0), (23, -150.0), (18, -148.5), (15, -99.4), (5, -75.75), (4, -49.2), (13, -49.0), (9, -41.3), (20, -25.5), (17, -22.3), (10, -13.1), (16, -12.5), (14, -9.8), (3, -8.5), (1, -8.4), (12, -1.5), (7, -0.6), (2, -0.

我有一个元组的Python列表,如下所示:

lst = [(22, -150.0), (23, -150.0), (18, -148.5), (15, -99.4), (5, -75.75), (4, -49.2), (13, -49.0), (9, -41.3), (20, -25.5), (17, -22.3), (10, -13.1), (16, -12.5), (14, -9.8), (3, -8.5), (1, -8.4), (12, -1.5), (7, -0.6), (2, -0.4), (6, 1.7), (21, 2.7)]

如何将其传递到redis排序集,以便每个元组中的第二个值用作分数?我尝试了
zadd(sorted_set,*lst)
,但得到的错误是
值不是有效的浮点值

redis的
zadd
方法。StrictRedis
需要以

zadd(key, score1, name1, score2, name2, ...)
换句话说,您还需要反转和解压缩内部元组:

In [6]: r = redis.StrictRedis(...)

In [8]: r.zadd('sset', *(y for x in lst for y in x[::-1]))
Out[8]: 20

Redis.zadd
StrictRedis.zadd
的行为不同——有关更多详细信息,请参阅。因此,如果您使用
redis.redis
而不是
redis.StrictRedis
(您不应该这么做),请不要反转元组:

r.zadd('sset', *(y for x in lst for y in x))

redis.StrictRedis
zadd
方法需要以下形式的参数

zadd(key, score1, name1, score2, name2, ...)
换句话说,您还需要反转和解压缩内部元组:

In [6]: r = redis.StrictRedis(...)

In [8]: r.zadd('sset', *(y for x in lst for y in x[::-1]))
Out[8]: 20

Redis.zadd
StrictRedis.zadd
的行为不同——有关更多详细信息,请参阅。因此,如果您使用
redis.redis
而不是
redis.StrictRedis
(您不应该这么做),请不要反转元组:

r.zadd('sset', *(y for x in lst for y in x))