Trimming trailing duplicates from a list
考虑以下列表:
1 | data = ['A', 'B', 'CAT', 'C', 'CAT', 'CAT', 'CAT'] |
清单末尾的
1 | data = ['A', 'B', 'CAT', 'C', 'CAT'] |
我想到的一个方法是:
1 2 3 4 5 6 7 8 9 10 | count = 0 for i in reversed(data): if i == 'CAT': count += 1 else: break if count > 1: del data[-count:] |
完成一个稍微小一些的任务需要很长时间。
怎么样:
1 2 | while len(data) > 1 and data[-1] == data[-2]: data.pop() |
这将修剪任何类型的尾随副本。如果您特别希望只修剪