首页 > 解决方案 > 如何将python字符串中的数字替换为连续数字和相同的新数字以进行重复

问题描述

我需要修改从任何数字(在本例中为 7)开始的文件中的数字,以从 1 开始并连续进行。但是如果下一行的数字相同,它不应该打印新的连续数字,而是应该给出相同的新数字。

我将能够根据列位置访问所有这些数字。我感兴趣的数字只在第 5 列和第 6 列。

为了更清楚

我的输入文件有:

年年 7 月

年年 7 月

年年 7 月

年年 8 月

年年 8 月

年年 9 月

年年 9 月

年年 9 月

年年 11 月

年年 11 月

我想要像这样的输出:

年年 1

年年 1

年年 1

年年 2

年年 2

年年 3

年年 3

年年 3

年年 4 月

年年 4 月

标签: pythonpython-3.x

解决方案


您可以使用基于简单defaultdict的技巧来获得1基于连续的“索引”:

 from collections import defaultdict

 ind = defaultdict(lambda: len(ind) + 1)
 for row in data:
     row[4] = ind[row[4]]

这将创建旧值到新值的一致映射,新值来自[1..n].


推荐阅读