Сделал в таком виде
data = [{'Сан-Франциско Джайентс (1.5) мен -2.35 Сан-Франциско Джайентс (1.5) бол -1.45': '2.35'}, {'Лос-Анджелес Доджерс (6.5) мен -2.9 Лос-Анджелес Доджерс (6.5) бол -1.62': '2'}, {'П1 в 4-м иннинге': '4.25'}, {'П1 и тотал (7.5) мен -4.8 П1 и тотал (7.5) бол -2.6': '4.8'}, {'П2 и тотал (7.5) мен -4.05 П2 и тотал (7.5) бол -2.9': '4.05'}, {'Лос-Анджелес Энджелс победа и тотал (8.5) мен -3.75 Лос-Анджелес Энджелс победа и тотал (8.5) бол -2.55': '3.0'},]
def get_pair_keys(string):
pattern = re.compile(r'-\d+\.\d+')
str_list = string.split()
koef_l = []
for i, s in enumerate(str_list):
a = re.findall(pattern, s)
if a:
a = a[0].replace('-', '')
data = (i, a)
koef_l.append(data)
data1, data2 = {}, {}
ind1 = koef_l[0][0]
ind2 = koef_l[1][0]
k1 = str_list[:ind1]
k1 = ' '.join(k1)
data1[k1] = koef_l[0][1]
k2 = str_list[ind1+1:-1]
k2 = ' '.join(k2)
data2[k2] = koef_l[1][1]
return (data1, data2)
for d in data:
for key, val in d.items():
if ('мен' in key) and ('бол' in key):
string = get_pair_keys(key)
print(string)
вот только это работает, если значение float, если int - падает все. регулярка ‘-\d+\.\d+’ не отрабатывает этот вариант. может кто подскажет регулярку? спасибо.