Я хочу сравнить положение и разницу в стоимости между двумя списками.Мне нужно знать, насколько listB
похож на listA
, он не только содержит одинаковые значения, но и находится в тех же позициях.
from collections import Counter
listA = [0.01, 0.02, 0.04, 0.03]
listB = [0.01, 0.02, 0.03, 0.04]
def compareListMethod1(a, b):
return set(a).intersection(b)
def compareListMethod2(a, b):
c1 = Counter(a)
c2 = Counter(b)
diff = c1-c2
return list(diff.elements())
def compareListMethod3(a, b):
count = Counter(a) # count items in a
count.subtract(b) # subtract items that are in b
diff = []
for x in a:
if count[x] > 0:
count[x] -= 1
diff.append(x)
return diff
print(compareListMethod1(listA, listB)) # returns {0.02, 0.01, 0.04, 0.03}
print(compareListMethod2(listA, listB)) # returns []
print(compareListMethod3(listA, listB)) # returns []
Желаемый результат покажет, сколько раз два списка отличались друг от друга.В этом случае первые две записи являются точными, но записи в индексах 2 и 3 отличаются - поэтому между этими двумя списками есть 2 различия.
Спасибо за любые рекомендации!