小编ric*_*and的帖子

如何在具有特定 ID 的记录之前和之后获得 5 条记录?

我有一个以scoresidscore. 我想通过它id以及它之前和之后的 5 条记录访问特定记录。SQL中有没有办法说“用它前后的idnxitems获取分数?”

sql

4
推荐指数
1
解决办法
2033
查看次数

将对象的属性转换为元组的排序列表的首选技术是什么?

我正在使用一个开源库,他们定义了一个类,如下所示:

class Provider(object):
    """ Defines for each of the supported providers """
    DUMMY = 0
    EC2 = 1
    EC2_EU = 2
    RACKSPACE = 3
    SLICEHOST = 4
    GOGRID = 5
    VPSNET = 6
    LINODE = 7
    VCLOUD = 8
    RIMUHOSTING = 9
Run Code Online (Sandbox Code Playgroud)

我需要获取属性(DUMMY,EC2等)并将它们转换为元组的排序列表,看起来像这样:

[(0, 'DUMMY'), (1, 'EC2'), ...]
Run Code Online (Sandbox Code Playgroud)

我想对属性本身的名称进行排序.我想出了一些解决这个问题的方法,包括以下似乎是处理这个问题的低效方法:

import operator
from libcloud.types import Provider

PROVIDER_CHOICES = [(v,k) for k, v in vars(Provider).items()
                                   if not k.startswith('__')]
PROVIDER_CHOICES = sorted(PROVIDER_CHOICES, key=operator.itemgetter(1))
Run Code Online (Sandbox Code Playgroud)

它有效,但似乎不优雅,并且可能有更好的方式.我也看到了通过这样做构建列表的方式中的缺陷if not k.startswith('__')- 主要是如果开源库将方法添加到Provider类的话?

只是寻找一些可能更有效的意见和其他技术.

python sorting

1
推荐指数
1
解决办法
100
查看次数

标签 统计

python ×1

sorting ×1

sql ×1