On Friday, June 12, 2015 at 5:27:21 PM UTC-7, Chris Angelico wrote: > On Sat, Jun 13, 2015 at 10:02 AM, <sohcahto...@gmail.com> wrote: > >> >>> ints = [0, 1, 2, 2, 1, 4, 6, 5, 5] > >> >>> ints[:] = [i for i in ints if not i % 2] > >> >>> ints > >> [0, 2, 2, 4, 6] > >> > >> > >> -- > >> Terry Jan Reedy > > > > On the second line of your final solution, is there any reason you're using > > `ints[:]` rather than just `ints`? > > If you use "ints = [...]", it rebinds the name ints to the new list. > If you use "ints[:] = [...]", it replaces the entire contents of the > list with the new list. The two are fairly similar if there are no > other references to that list, but the replacement matches the > mutation behaviour of remove(). > > def just_some(ints): > ints[:] = [i for i in ints if not i % 2] > > ChrisA
Ah that makes sense. Thanks. -- https://mail.python.org/mailman/listinfo/python-list