将变量存储在字典中以存储大数据

时间:2017-06-13 20:12:44

标签: python dictionary namedtuple

我可以在python中打印变量。

for h in jl1["results"]["attributes-list"]["volume-attributes"]:
        state = str(h["volume-state-attributes"]["state"])
        if aggr in h["volume-id-attributes"]["containing-aggregate-name"]:
                if state == "online":

print(h["volume-id-attributes"]["owning-vserver-name"]),
print(' '),
print(h["volume-id-attributes"]["name"]),
print(' '),
print(h["volume-id-attributes"]["containing-aggregate-name"]),
print(' '),
print(h["volume-space-attributes"]["size-used"]

这些打印功能返回例如100行。现在我想根据“使用大小”的过滤器仅打印前5个值。 我试图在字典中取这些值,并过滤掉“使用过大小”的前五个值但不确定如何将它们带入字典中。

有些事情是这样的 {'vserver':( u'rcdn9-c01-sm-prod',),'usize':u'389120','vname':( u'nprd_root_m01',),'aggr':( u'aggr1_n01', )}

任何其他选项,如namedtuples也受到赞赏。

由于

2 个答案:

答案 0 :(得分:0)

要获取按某个键排序的词典列表,请使用sorted。假设我有一个包含ab键的词典列表,并希望按b元素的值对它们进行排序:

my_dict_list = [{'a': 3, 'b': 1}, {'a': 1, 'b': 4}, {'a': 4, 'b': 4},
                {'a': 2, 'b': 7}, {'a': 2, 'b': 4.3}, {'a': 2, 'b': 9}, ]


my_sorted_dict_list = sorted(my_dict_list, key=lambda element: element['b'], reverse=True)
# Reverse is set to True because by default it sorts from smallest to biggest; we want to reverse that

# Limit to five results
biggest_five_dicts = my_sorted_dict_list[:5]

print(biggest_five_dicts)  # [{'a': 2, 'b': 9}, {'a': 2, 'b': 7}, {'a': 2, 'b': 4.3}, {'a': 1, 'b': 4}, {'a': 4, 'b': 4}]

答案 1 :(得分:0)

heapq.nlargest is the obvious way to go here

it('returns my resource', function() {
    var myUser = {name:'Bob'}
    var promise;
    $httpBackend.expectGET('/myresource').respond(200,myUser);
    promise = myService.getMyUser()
    .then(function(data) {
        expect(data).toEqual(myUser);
    },fail);
    $httpBackend.flush();
    expect(promise.$$state.status).toEqual(1);
});