On 2020-11-11, MRAB <pyt...@mrabarnett.plus.com> wrote: >> > Points to note in your first code: > > 1. Modifying a list while iterating over it is a bad idea. > > 2. You're modifying the list that you're passing in and also returning > it. That's a bad idea. Either modify it in place or modify and return a > copy. > > 3. The line: > > m = (letter_list.index(x)) > > returns the position of the first occurrence of x. > > Points to note in your second code: > > 1. (See above) > > 2. (See above) > > 3. (See above) > > 4. 'i' goes from 0 to len(letter_list)-1, so i+1 goes from 1 to > len(letter_list), but the maximum index permitted by letter_list is > len(letter_list)-1, hence letter_list[i+1] will raise IndexError on the > last iteration. > > 5. 'i' goes from 0 to len(letter_list)-1, so i-1 goes from -1 to > len(letter_list)-2. letter_list[-1] returns the last (final) letter in > the list, and it's treated as a true. > > 6. This: > > x != letter_list[i+1] and letter_list[i-1] > > is checking whether: > > x != letter_list[i+1] > > is true and also whether: > > letter_list[i-1] > > is true.
I see now I overcomplicated it, what is a good idea then? -- https://mail.python.org/mailman/listinfo/python-list