2011-01-07 3 views
1

예를 들어 json 파일이 있습니다.JSON 요소를 목록에 추가 한 다음 Python에서 중복 파일을 효율적으로 제거합니다.

[{ "복": "thejimjams", "SU" 232,104,580}, { "복": "thejimjams", "SU" 216,575,430}, { "복": "thejimjams" "SU" 184,695,850}] 나는 목록에서 "SU"카테고리에서 JSON 파일의 무리에 대한 모든 값을 둘 필요가

. 그래서 각 파일 (약 200)은 자신의 목록을 가지고있을 것이고 목록을 결합하여 중복을 제거 할 것입니다. 시스템 자원과 시간을 절약하기 위해이 작업을 수행하는 동안 거기에 있고 권장 할만한가?

나는 목록을 작성하려고 생각하고있다. json 파일을 반복 할 때마다 "su"목록을 다음 파일로 이동 한 다음 목록을 추가 한 다음 중복 된 내용을 제거한다. 즉 좋은 방법에 대한 권장 사항을 기본적으로 개방

이를 구현하기 위해 효율적이지 않는 한 Combining two lists and removing duplicates, without removing duplicates in original list을 : 나는 대답이 질문에 무슨 다음 생각하고 중복을 제거하는 측면에서

.

감사합니다.

답변

4

주문 하시겠습니까? 그렇지 않은 경우 set()에 번호를 추가하면 자동으로 중복 항목이 제거됩니다. 당신은 200 "SU"목록이있는 경우 예를 들어, : 것

set(su for sus in lists for su in sus) 
+0

덕분에 모든 사람이 해결책으로 세트를 언급하면 ​​기본적으로이 접근 방식을 사용했습니다.'set (su in sus in sus) '을 구현하면 성능이 향상됩니다. – eWizardII

0

매우 정직 방법 :

lists = [ 
    [...su's for file 1...], 
    [...su's for file 2...], 
    etc. 
] 

은 그럼 당신은 하나 개의 큰 세트로 결합 할 수

json_list = [{"fu": "thejimjams", "su":4580}, {"fu": "thejimjams", "su": 216575430}, {"fu": "thejimjams", "su": 184695850}] 

new_list = [] 
for item in json_list: 
    if item not in new_list: 
     new_list.append(item) 
1

고유 한 요소 목록을 유지하도록 설계된 python set을 사용하십시오. 그러면 요소를 추가 할 때 중복이 제거됩니다.

output = set() 
for filename in filenames: 
    data = json.loads(open(filename, 'r').read()) 
    for row in data: 
     output.add(row.get('su')) 

# convert back to a list 
output = list(output) 
관련 문제