Функция list.index не написана для различения типов. Если вы хотите этого, вам придется написать свою собственную функцию. Использование перечисления в вашем l oop даст реальный индекс.
a = [4.5, 6 , "hi" , 6.0]
for idx, b in enumerate(a):
if type(b)==float:
print(idx, b , id(b))
else:
print(idx , b , id(b))
Вы можете заключить этот код в функцию для создания новой чувствительной к типу индексной функции, которая возвращает только idx
.