2016-12-15 1 views
1

나는이 같은 MySQLdb에서 가져 오는에서 일부 행을 얻을 : 2L, 31L11L 같은 일부 중복 값이 ​​있습니다중복 키의 배열 사전?

((2L, 0.904672), (2L, 0.816745), (2L, 1.07916), (31L, 0.874432), (31L, 1.13517), (31L, 0.737347), (11L, 0.507236), (11L, 0.946989), (11L, 0.816373).....) 

. 내 dict의 키로 값을 사용하고 싶습니다

내가 물어보고 싶은이 튜플을 어떻게 키를 기반으로 배열 값으로 사전을 변환하는 것입니까?

그래서 내가 만들고 싶어하면이 같다 :

{'2L':[0.904672,0.816745,1.07916], '31L':[0.874432,1.13517,0.737347],'11L':[0.507236,0.946989,0.816373],..........} 

어떤 도움을 주시면 감사하겠습니다 :) 당신은 단순히 원하는 값을 추가 할 수 있도록

답변

2

아무것도 가져 오지 않고 당신이 할 수 있습니다

data=(('2L', 0.904672), ('2L', 0.816745), ('2L', 1.07916), ('31L', 0.874432)) 

out={} 
for k,v in data: 
    out.setdefault(k,[]).append(v) 

k 경우 다음 outk:[]에 존재하지 않는 그렇지 않으면 v가 추가되어 만들어집니다 ~ out[k].

출력 :

{'31L': [0.874432], '2L': [0.904672, 0.816745, 1.07916]} 
3

defaultdict는, 그 값 목록입니다 사전이다. 이 같은

from collections import defaultdict 

results_dict = default_dict(list)  
for record in results: 
    for (k,v) in record: 
     results_dict[k].append(v) 
2

시도 뭔가 :

dict = {} 
for k,v in results: 
    if k in dict: 
     dict[k].append(v) 
    else: 
     dict[k] = [v] 
2

확인 defaultdict

from collections import defaultdict 
d = defaultdict(list) 
for val1, val2 in tups: 
    d[val2].append(val2)