Io ho utilizzato le espressioni regolari perchè mi velocizzavano molto il tutto...
Prima ho verificato se si trattasse di 'comp' o di 'sub' per sapere se assegnare il numero ad una chiave o ad un valore del dizionario, dopo di che ho utilizzato il comando re.sub(r"\D",'',stringaincuicercare) in modo da sostituire tutto quello che non è un numero con vuoto... Mi ha agevolato, rispetto al replace, perchè in questo modo anche la stringa ' comp 8 ' restituisce, dopo la sostituzione il valore '8', in quanto il comando re.sub(r"\D",'') sostituisce sia caratteri alfabetici, che spazi, che caratteri speciali con vuoto... senza dover fare diversi replace successivi :)
Nota: Per le espressioni regolari la sintassi r"\D" sta per "tutto quello che non è un numero", logicamente parlando :)
Se ti sono stato di aiuto e sei soddisfatto della mia risposta, per favore contrassegnala come migliore :)