2013-03-25 81 views
0

特定的按鍵我有如下Python字典:如何獲得最大的價值從Python字典

a={ 
    u'data': [ 
    [u'2013-03-19', u'1363762799', u'4004658'], 
    [u'2013-03-20', u'1363849199', u'4756668'] 
    ], 
    u'columns': [ 
    u'dt_pst', 
    u'timestamp', 
    u'count' 
    ] 
} 

我如何獲得關鍵u'timestamp最大價值「?我想要這個號碼:1363849199.

謝謝!

回答

1

將它轉換成可用的格式第一:

>>> d = {row[0]: row[1:] for row in zip(a['columns'], *a['data'])} 
>>> d 
    {u'count': (u'4004658', u'4756668'), 
u'dt_pst': (u'2013-03-19', u'2013-03-20'), 
u'timestamp': (u'1363762799', u'1363849199')} 

如果您使用2.6,字典推導將無法正常工作。您需要使用dict()構造:

d = dict((row[0], row[1:]) for row in zip(a['columns'], *a['data'])) 

現在,你可以用max

>>> max(d['timestamp'], key=int) 
    u'1363849199' 
>>> max(map(int, d['timestamp'])) 
    1363849199 
+0

我得到這個錯誤:'文件 「」,1號線 DF = {行[0] :行[1:]用於zip中的行(a ['列'],* a ['data'])} ^ SyntaxError:嘗試運行時無效的語法:'d = {row [0]:row [1:]爲zip中的行(a ['列'],* a ['data'])} – tonystarkix 2013-03-25 00:51:13

+0

@tonystarkix:該語法對於2.6不起作用。看到我的答案2.6兼容的語法。 – Blender 2013-03-25 00:52:04

+0

真棒,謝謝! – tonystarkix 2013-03-25 00:55:17