I'm encountering an unexpected output while using list comprehension in Python. I'm trying to create a list of squared values for even numbers in a given range, but the result is not what I anticipated. Here's the code I'm using:

even_numbers = [x for x in range(10) if x % 2 == 0]
squared_values = [x**2 for x in even_numbers]

I expected the output to be [0, 4, 16, 36, 64], but instead, I'm getting [0, 4, 16]. It seems like the last even number (8) and its corresponding squared value (64) are missing.

Can someone help me understand why this is happening and how to correct my list comprehension code to get the desired output? Is there something I'm overlooking in my approach? Your insights would be greatly appreciated. Thank you!