Если вы просто хотите получить список ненулевых цифр в исходном списке, вы можете использовать это:
a = [ 1002, 2, 3, 7 ,9, 15, 5992]
strings = [str(el) for el in a]
str_digits = [char for el in strings for char in el if char != '0']
и если вы хотите, чтобы цифры были в виде целых, вы можете сделать:
int_digits = [int(el) for el in str_digits]
или go прямо на
int_digits = [int(char) for el in strings for char in el if char != '0']
Я не уверен, что логика c стоит за вашим желаемым выводом, поэтому, если это не поможет, я ' мне жаль.