Win10. Python 3.7
Потребовался быстренький подсчёт количества элементов списка 2 в списке 1
Пробовал 3 варианта:
- понятно, что самый понятный и надёжный, но и самый медленный...
Попробовал считать не в списке а в кортеже - тоже не очень...
Тогда бинпоиск:
Всё равно медленно (и корявенько...).
Есть что-то быстрее бинпоиска или неправильно его применяю?
Потребовался быстренький подсчёт количества элементов списка 2 в списке 1
Пробовал 3 варианта:
Код:
for i in list2:
print(list1.count(i))
Попробовал считать не в списке а в кортеже - тоже не очень...
Тогда бинпоиск:
Код:
for i in list2:
count = 0
E = 1
while E != 0:
L, R = -1, len(list1)
while R - L > 1:
mid = (L + R) // 2
if list1[mid] <= i:
L = mid
else:
R = mid
if list1[L] == i:
count += 1
list1.remove(list1[L])
else:
E = 0
print(count)
Есть что-то быстрее бинпоиска или неправильно его применяю?