从子管理中获取列表

时间:2014-03-25 00:58:08

标签: python dictionary

我是Python的新手,对词典感到非常兴奋。他们让我命名一切,以便我不必记住场地位置,并且似乎制作更加坚固的代码。但是,现在我面临从这个词典中提取列表(1,2,3,4)和(5,6,7,8)。有任何想法吗??而且......这段代码是随机建模程序的核心,所以我需要快速。 干杯!

evnt = {'m1':{'rate':1, 'val':5 },
        'm2':{'rate':2, 'val':6 },
        'd1':{'rate':3, 'val':7 },
        'd2':{'rate':4, 'val':8 }}

3 个答案:

答案 0 :(得分:2)

一个显而易见的方法是列表理解,如果它不够快,那么您可能需要考虑不同的数据结构。

>>> [v['rate'] for v in evnt.itervalues()]
[4, 3, 1, 2]

注意:只是.values() for python3)

不,你不能按顺序排列它们(没有排序),因为你的字典首先没有排序。

答案 1 :(得分:0)

你的字典很短,所以没有itertools你应该更好:

zip(*(item.values() for item in evnt.values()))

答案 2 :(得分:0)

您可以使用列表理解:

检查第5.1.4节

http://docs.python.org/2/tutorial/datastructures.html

rates = [x['rate'] for x in evnt.values()]
values = [x['val'] for x in evnt.values()]