+ 1
Question about remove ...
The result for the operation s.remove(x) is removing the first item of s where s[i] is equal to x. That seems pretty straight forward, however the statement s[1:].remove(x) does not appear to remove x from s[1:]. If s1 is assigned to s[1:] then the operation s1.remove(x) works as expected. I am trying to understand why remove does not work on the first statement? Thank you for any help.
1 Answer
+ 6
Because s and s[:] are different. s[:] is just a copy, and not the original list
When you use s.remove(x), you're removing from the list itself
When you use s[:], you're modifying a copy of that list, and not the list itself. In order to modify the new copy, you have to assign it to variable.
Just line s[:], s[1:] is just anither copy of s, that doesn't contain the first element.