On 2020-11-11 01:26, Bischoop wrote:
Can anybody help?Here's the code that gives me a hedeache for second day
https://bpa.st/XLOA
If I have letter_list = ["a","a",,"b","b","c","c"] it's working
correctly but if I have three or more of any letters for
example:letter_list = ["a","a","a","b","b","c","c"], I'm ending up with
some pairs somewhere.
I took another way approach today: https://bpa.st/E7HQ, was thinking
about iterating and checking if neighbour characters won't make a pair
but I've end up with error:
if x != letter_list[i+1] and letter_list[i-1]:
IndexError: list index out of range
andin addition: got 4 "a" (had 3only) and missing 1 "b" :-/
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.
--
https://mail.python.org/mailman/listinfo/python-list