2016-11-27 2 views
0

Я пытаюсь создать сравнение двух списков MD5hash. Мне нужно определить, какие хеши сравниваются и возвращать хеши, которые сравниваются. Мне не очень повезло, так что любая помощь будет потрясающей.Сравнение двух списков, возвращающих результаты для отображения

Это то, что я имею в минуту:

BadHashes = [] 
for element in filesavedin: 
    if element in hasheddic: 
     BadHashes.append(element) 
     print BadHashes 
return BadHashes 
+3

Поместите свои элементы в 'set' и используйте 'intersection' –

+0

Я довольно новичок в python и не уверен, как использовать наборы. как бы я его структурировал? – MCN7

ответ

0

Вот документация на множествах: https://docs.python.org/2/library/sets.html

Codewise:

from set import Set 

set1 = Set([1,1,2,3]) 
set2 = Set([2,2,3,4]) 

intersecting = set1.intersection(set2) 

Если вам intersecting = Set([2,3]). Вы можете преобразовать это обратно в объект списка с помощью list(intersecting), хотя большинство операторов списка также работают с множествами.

+0

Хеши MD5 будут совпадать, но текст не будет, это вызовет ошибку? [ '706a5076efba4babff1a1a22d394f9c7: icon_clown.gif', 'f6bea6e63a1d311e32a759d6f4859ace: sleeper.jpg', 'e4e7c3451a35944ca8697f9f2ac037f1: StarWarsReview.docx', '6bbaa34b19edd6c6fa06cccf29b33125: nothingtoseehere.docx', [ '9d377b10ce778c4938b3c7e2c63a229a: contraband_file1.jpg', «6bbaa34b19edd6c6fa06cccf29b33125: contraband_file2. jpg ',' e4e7c3451a35944ca8697f9f2ac037f1: contraband_file3.jpg ',' 1d6d9c72e3476d336e657b50a77aee05: contraband_file4.gif '] – MCN7

+1

Я предлагаю вам предварительно обработать ваши списки, чтобы изолировать только хэши md5. Используйте понимание списка, например. 'proc_list = [x.split (": ") [0] для x в hash_list]', затем запустите пересечение на них, чтобы вы только сравнивали хэши md5. –

+0

Если бы мне тогда захотелось добавить файл (например, StarWarsReview.docx) с хэшем MD5, как бы вы это сделали? – MCN7

Смежные вопросы