Переместить строковые данные из списка в словарь

Нужно написать алгоритм, перемещающий строковые данные из списка в словарь, так что бы не содержащие цифры данные становились ключами, а последующие за ними числа(в виде строк) становились значениями. Вот пример:

a = ['qw', '67.234', 'wr', '87', '76.39212', '14', '17.09843', 'rq', '145.987', '134.98']
b = {'qw': ['67.234'], 
    'wr': ['87', '76.39212', '14', '17.09843'] ,
    'rq': ['145.987',  '134.98'] 
    }

Ответы (2 шт):

Автор решения: CrazyElf

Один из вариантов реализации:

a = ['qw', '67.234', 'wr', '87', '76.39212', '14', '17.09843', 'rq', '145.987', '134.98']
b = {}
for s in a:
    try:
        x = float(s)
        b[k] = b.get(k, [])
        b[k].append(s)
    except:
        k = s
print(b)

Вывод:

{'qw': ['67.234'], 
 'wr': ['87', '76.39212', '14', '17.09843'], 
 'rq': ['145.987', '134.98']}

Можно сделать через регулярки. Разные есть варианты, как сделать.

→ Ссылка
Автор решения: SergFSM

вот еще вариант, не самый оптимальный, но вроде как рабочий (пропускает ключи для которых нет значений, ключ TEST в примере):

from itertools import groupby

a = ['qw', '67.234', 'TEST', 'wr', '87', '76.39212', '14', '17.09843', 'rq', '145.987', '134.98']

gr = [list(g) for _,g in groupby(a, str.isalpha)]
b = {k[-1]:g for k, g in zip(gr[::2],gr[1::2])}

вывод:

{'qw': ['67.234'], 
 'wr': ['87', '76.39212', '14', '17.09843'],
 'rq': ['145.987', '134.98']}
→ Ссылка