python - 如何将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 月
解决方案
您可以使用基于简单defaultdict
的技巧来获得1
基于连续的“索引”:
from collections import defaultdict
ind = defaultdict(lambda: len(ind) + 1)
for row in data:
row[4] = ind[row[4]]
这将创建旧值到新值的一致映射,新值来自[1..n]
.
推荐阅读
- python - 打开和打印 txt 文件时出现“IndexError: list index out of range”
- html - 过滤不工作的页面数 django
- javascript - 在异步等待的 try catch 块中得到 UnhandledPromiseRejectionWarning
- excel - 查找值、剪切行并粘贴到单独的工作表中
- ios - 键盘使用 transparentModal 和 KeyboardAvoidingView 覆盖 React Navigation 屏幕
- solr - 在 Solr 中,我如何将多个分组数据放在它们所属的元数据下?
- symfony - 如何在 Orocommerce 中正确启用二级缓存
- reactjs - Djoser 接受我的请求需要包含哪些内容?
- python - 将 pd.get_dummies 用于 OneHotEncoding 时出现 KeyError
- azure - 如何通过 ms graph API 读取分配给用户的架构扩展