如何使用Python对连续数字进行重复数据删除

问题描述 投票:0回答:1

我正在寻找用 Python 完成以下任务的代码(雪花解决方案也可以。)

column A (before transformation)
8->8->8->8->5->7
8->5->5->5->7->8->7->7
25->15->15->13->18
25->15->15->13->18->15

需要对数字进行重复数据删除以保持序列完整。仅当它们在一起时才会进行重复数据删除。

column A (after transformation)
8->5->7
8->5->7->8->7
25->15->13->18->15

谢谢!

不知道该怎么做。

python unique python-dedupe
1个回答
0
投票

仅当每个项目与前一个项目不匹配时,您才可以通过将每个项目添加到新列表来删除连续的重复项。

这是一个例子:

a = [
    [8, 8, 8, 8, 5, 7],
    [8, 5, 5, 5, 7, 8, 7, 7],
    [25, 15, 15, 13, 18],
    [25, 15, 15, 13, 18, 15]
]
b = []
for sublist in a:
    b.append([])
    for item in sublist:
        if not len(b[-1]) or b[-1][-1] != item:
            b[-1].append(item)

for sublistb in b:
    print(sublistb)

当我运行此命令时,我得到以下输出:

[8, 5, 7]
[8, 5, 7, 8, 7]
[25, 15, 13, 18]
[25, 15, 13, 18, 15]

如果您有任何疑问,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.