我是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 }}
答案 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()]