Steven D'Aprano <steve+pyt...@pearwood.info> added the comment:
Hi Aleksandr, In future, when posting what you think might be a bug, please try to cut the code down to the bare minimum needed. In this case, it doesn't matter at all that the strings you are processing come from splitting a larger string. split() has done its job, correctly, giving you a list of substrings ['WORD', 'BIRD\nBIRD\nBIRD'] You then extract each item, and only then take the slice from it. So you can simplify the problem: string = 'WORD' print(string[0:3]) You ask: "Shouldn't index [0:3] give 4 chars?" No. It gives *three* characters. The end index is not included in the slice. Slice indexes occur *between* the characters: |W|O|R|D| 0.1.2.3.4 so a slice from 0 to 3 includes only three characters, not four. ---------- nosy: +steven.daprano resolution: -> not a bug stage: -> resolved status: open -> closed _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue43076> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com