from collections import defaultdict
unvalues = open("file1.txt", "r").readlines()
newfunds = open("file2.txt", "r").readlines()
unvals = defaultdict(int)
for val in unvalues:
unvals[val] = 0
for line in newfunds:
line = line.strip()
if line[:6] in unvals.keys():
unvals[line[:6]] += 1
for k in unvals.keys():
if unvals[k] == 0:
print "Match Not Found For %s" % k
может дать вам хорошую отправную точку для того, чего вы хотите достичь, не будучи ужасно грязным. Это дает вам преимущество в производительности, поскольку вы просматриваете только каждый набор данных по отдельности.
В качестве краткого дополнения, если вам нужны номера строк, а не строить счетную переменную вне цикла и увеличивать ее, попробуйте вместо этого:
for i, line in enumerate(newfunds):
enumerate () в основном архивирует последовательный целочисленный итератор с вашим списком, чтобы получить желаемый результат без лишних операций подсчета.