Самая прямая идея для сопоставления '4.5'
из 'ABV: 4.5-5.5%'
состоит в использовании регулярного выражения . Вот код:
import re
string='ABV: 4.5-5.5%'
output=re.search(r'([\d\.]+)\-[\d\.]+',string)[1]
Что касается удаления кратных значений в списке, использование простого понимания списка - это простой метод:
new_list=[old_list[i] for i in range(len(old_list)) if not i in indices]
Например:
import numpy as np
old_list=np.random.random(10)
indices=np.random.choice(np.arange(0,10),5)
new_list=[old_list[i] for i in range(len(old_list)) if not i in indices]
print('The original list is:',list(old_list))
print('The indices to be removed are:',list(indices))
print('The new list is:',list(new_list))
Выход:
Оригинальный список: [+0,9233779986812494, +0,47976112127600334, +0,2669764806705126, +0,8598525413490794, +0,03257522197544993, +0,472960144751734, 0,07720026239677213, +0,22969097769323488, +0,3039956214047107, +0,5079366193702746]
1020 * Удаляемые индексы: [2, 0, 1, 7, 3]
Новый список: [0.03257522197544993, 0.472960144751734, 0.07720026239677213, 0.3039956214047107, 0.5079366193702746]
1024