Python.Заполните массив случайными N - числами в интервале [0,5]. Найдите все значения равные X

Подскажите пожалуйста!!! Задача в питоне Заполните массив случайными N - числами в интервале [0,5]. Найдите все значения равные X. Формат входных данных N и X. N – целое число, в диапазоне от 1 до 1 000 000. X число в диапазоне от 0 до 5. Формат выходных данных Вывести полученный массив, в первой строке, каждый элемент через пробел. Далее - найденные значения индексов массива. По одному в каждой строке. Пример
Входные данные

5 2

Выходные данные

12312
1
4

• 1 и 4 это индексы элементов массива равных X (2)

import random
n, x = map(int, input().split())
arr = [random.randint(0, 5) for i in range (0,n)]
print(*arr)
c = x
j = 0
while True:
    try:
        i = arr.index(c, j)
        print(i)
        j = i + 1
    except:
        break

Программа рабочая, но не прохожу по времени. Подскажите, какие еще есть варианты?


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

Автор решения: MBo
b = [i for i in range(n) if arr[i] == x]
print(*b)
→ Ссылка
Автор решения: TigerTV.ru

Используя filter:

*res, = filter(lambda i: arr[i] == x, range(len(arr)))

с выводом:

*map(print, filter(lambda i: arr[i]==x, range(len(arr)))),
→ Ссылка