a = ['hello', '1', 'hi', 2, 'something', '3']
pattern = re.compile('^(-?\\d+)(\\.\\d+)?')
b = [(float(item) if isinstance(item, str) and re.match(pattern, item) else
    item) for item in a]
преобразовать список строк и чисел в строку и число с плавающей запятой