为什么不是算x乘[(i+5)%10]而是直接算[(i+5)%10]

x = range(10)
print(x[(i+5)%10] for i in x if not i%2)
[5,7,9,1,3]
#答案是直接算[(i+5)%10],不是算x[(i+5)%10]
#试着把代码中x[(i+5)%10]中的x去掉会出错,把[ ]变( )也不行

你提供的代码中,使用了列表推导式来生成一个由 (i+5)%10 组成的列表,而不是 x 乘以 (i+5)%10。列表推导式中的 x 并没有被使用到。
如果想使用可以将代码改成下面这样

x = range(10)
result = [num * ((i + 5) % 10) for i, num in enumerate(x) if not i % 2]
print(result)

x是个可迭代对象
x[i]是x里的第i个元素
[i]是个啥,列表吗
x(i)当然也不对,x又不是函数,怎么可以用小括号呢
你把每个符号都看明白就没有疑惑了,不要瞎搞