2016-04-27 11 views
0

minmaxを1行に入力するにはどうすればよいですか?1行で上限と下限を取得するにはどうすればよいですか?

d = {'k1': ['2000-01-01', '2003-01-01'], 
    'k2': ['2001-01-01', '2003-01-21'], 
    'k3': ['2001-11-01', '2002-01-01'], 
} 
d0 = min((a[0] for a in d.itervalues())) # '2000-01-01' 
d1 = max((a[1] for a in d.itervalues())) # '2003-01-21' 

もちろん、実際のディクテーションはこの例よりもはるかに長くなります。そしてもちろんあまりにもd0, d1 = min(...), max(...)私が求めているトリッキーではありません:)

+0

%の代わりに#を意味しましたか? – bashrc

+0

はい、ありがとうございました。 – Lee

答えて

1
reduce(lambda lst, val: [min(lst[0],val[0]), max(lst[1],val[1])],iter(d.itervalues())) 
+0

なぜ 'iter()'を追加するのですか?それは 'iter'なしで同じ結果を与える – Lee

関連する問題