Непонятно, что вы хотите. Ваша функция test () изменяет глобальный список «a», поэтому неудивительно, что «a» изменяется.
Если вы хотите, чтобы функция «test» работала с копией, а не непосредственно с, вы можете сначала скопировать ее.
Например,
def test():
a2 = list(a)
a2.remove(1)