Хорошо, что делает последняя строка,
[(2 * x) for x in range(64)]
, которая дает список из 64 чисел (умноженный на 2), а затем у нас есть условие, говорящее if x in [(4 * j) for j in range(16)]
.Во втором списке будет проверено, существует ли такой же номер из первых списков, и будут ли учитываться только эти номера в окончательном OP.
OP function_1:
[(2 * x) for x in range(64)]
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126]
OP function_2:
[(4 * j) for j in range(16)]
# [0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60]
Найдите, есть ли во втором списке числа из первого списка, назовите их x
и верните 2 * x
print([x*2 for x in range(64) if x in [j*4 for j in range(16)]])
# [0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120]