以下是一个解决这个问题的示例代码:
def keep_last_occurrence(arr):
result = []
last_occurrence = {}
for i in range(len(arr)):
last_occurrence[arr[i]] = i
for i in range(len(arr)):
if i == last_occurrence[arr[i]]:
result.append(arr[i])
return result
# 示例用法
arr = [1, 2, 2, 3, 4, 4, 4, 5, 5]
result = keep_last_occurrence(arr)
print(result) # 输出: [1, 2, 3, 4, 5]
该函数 keep_last_occurrence
接收一个列表 arr
,并返回一个新列表,其中包含原列表中每个元素按组保留直到最后一个值的出现。
在该函数中,我们首先创建一个空列表 result
和一个空字典 last_occurrence
。然后,我们遍历原列表 arr
,将每个元素的最后一个出现位置保存在字典 last_occurrence
中。
接下来,我们再次遍历原列表 arr
,对于每个元素,只有当它是最后一个出现的时候,才将其添加到结果列表 result
中。
最后,我们返回结果列表 result
。在示例用法中,我们传入一个列表 [1, 2, 2, 3, 4, 4, 4, 5, 5]
,该函数返回 [1, 2, 3, 4, 5]
。
上一篇:按组保留随机行,使用SAS
下一篇:按组变量创建一个连续计数变量