擅长:python、mysql、java
<p>这是我能想到的最好的编码方式。你知道吗</p>
<pre><code>def value_finder(val):
return lambda ev,li: next((di[val] for di in li if di['event']==ev),'')
def event_finder(ev,li):
return any(di['event']==ev for di in li)
def tuple_return(ev,li,nv,ov):
return (nv(ev,li),ov(ev,li),event_finder(ev,li))
def main(my_dict):
lis = []
nv = value_finder('newval')
ov = value_finder('oldval')
events = ['event1','event2','event3']
for key,value in my_dict.items():
temp_list = [key]
temp_list += [tuple_return(ev,value) for ev in events]
lis.append(temp_list)
print lis
my_dict = {'123@com':[{'event':'event1','oldval':1,'newval':2},
{'event':'event2','oldval':11,'newval':22},
{'event':'event3','oldval':33,'newval':44}],
'1234@com':[{'event':'event1','oldval':45,'newval':66}],
'12345@com':[{'event':'event2','oldval': 77,'newval': 99},
{'event':'event3','oldval':'99','newval':100}]}
main(my_dict)
</code></pre>