나는 두 개의 큰 목록이 설정합니다보다 효율적인 방법은
a = [['abcdefghijklmno', 'foo', 'bar'], … ]
b = [['abcdefghij12345', 'foo', 'bar'], … ]
내가 해당 b
에 진입, 그 반대가없는 a
의 모든 구성원에 관심이 있어요, 모두 n 및 a
및 b
에 대해 a[n][0]
및 b[n][0]
을 비교 한 결과를 바탕으로합니다. 나는이 두 가지 하위 목록 항목을 만들어서 set_a.difference(set_b)
을 수행 할 수 있으며 그 반대로도 매우 빠릅니다. 그러나 a
및 b
의 나머지 항목에 따라 두 목록 작성 (아마도 분명)는 느린 : ls
인 하나 또는 a
b
및 y
z
와 위에서 설명 된 두 가지이다
def remaining(ls ,y, z):
return [i for i in ls if i[0] in y.difference(z)]
.
10k 개 항목 목록에 대한 테스트가 거의 즉시 이루어졌습니다. 아마도 좀 더 철저히 테스트해야 하겠지만, 당신의 의심은 옳은 것처럼 보일 것입니다. – urschrei