나는 이전 게시물을 검색하고 사람 묻는 내가 할 노력하고있어 매우 일을 하나 발견되지 않은 : 나는 두 개의 사전을 보면 키가 동일한 경우 인스턴스를 찾기 위해 노력하고파이썬에서 두 개의 서로 다른 사전의 값을 비교합니까?
을 그러나 값은 다릅니다. 사전은 이 아니며 같은 크기입니다. 다른 값을 가진 일치하는 키를 찾았 으면 더 이상 값을 필요로하지 않으므로 목록에 키만 추가하려고합니다.
지금 당장이 작업을 수행하고 있습니다. 그것은 끔찍하게 비효율적이지만 200-ish 항목에는 괜찮습니다. 그래도, 20 만 개 항목을 통해 몇 가지 사전을 가지고, 그것은이 큰 문제가되고있는 곳입니다 : 모든이 할 수있는 방법이 있나요
for sourceKey, sourceValue in sourceDict.iteritems():
for targetKey, targetValue in targetDict.iteritems():
if targetKey == sourceKey:
if targetValue != sourceValue:
diffList.append(sourceKey)
? 파이썬 2.6을 사용하고 있습니다. DSM 그의 (지금 삭제) 대답에 언급 한 바와 같이
Hmmph. 7 초 만에 나를 때려! 나는 당신이'.keys()'를 호출 할 필요가 없다고 생각하지만, 불필요한 중간 목록을 생성 할 것이다. @DSM은 – DSM
입니다. 나는 어쨌든 그들이 친족이되어 있기 때문에 dict의 키를 세트처럼 다루기위한 오리 - 타이핑 메카니즘이 없다는 것에 조금 놀랐습니다. – kojiro
사실,'.keys()'를 호출하면'dict_keys()'객체가 생기고'a.keys() & b'는 그것이 생각하는대로 동작합니다! [우리는 여기서 2.6으로 작업하고 있습니다. 재미가 없습니다.] – DSM