2010-02-18 6 views
3

의 값을 업데이트하는 I가 다음 사전 -> 파이썬 : 사전

key : (time,edge_list) 

지금은 내가 그렇게 어떻게 1. 모든 시간 값을 증가 할

?

dict_list = dict(key:(time+1,edge_list) for key:(time,edge_list) in dict_list) 

답변

9
>>> d={"key" : (100,"edge_list")} 
>>> for i,(time,edge_list) in d.items(): 
... d[i] = time+1, edge_list 
... 
>>> d 
{'key': (101, 'edge_list')} 
+0

+1 : 요청 된대로 기존 사전을 수정합니다. –

7
dict((key, (time + 1, edge_list)) for (key, (time, edge_list)) in somedict.iteritems()) 
+0

난 그냥 "항목"보다는 "iteritems"를 사용하십시오 -이 경우 반복자 오버 헤드가 필요 없습니다. – Steve314

+0

@ Steve314 : 어쨌든 genex의 반복기 오버 헤드가 이미 있다는 것을 제외하고는. –

+0

Theres는 항상 오버 헤드가 있습니다.하지만 하나의 오버 헤드가 있으면 다른 것을 추가 할 수도 있습니다. 물론 파이썬 인터프리터에 대해 모르는 뭔가가있을 수 있습니다. 진정한 차이는 없다는 것입니다. – Steve314