可以使用字典来实现这个需求,遍历每一行,提取出~#和:#~中的数字作为key,后面的数字作为value,如果这个key已经存在于字典中,就把对应的value相加,否则就把这个key-value对添加到字典中。

示例代码:

result = {}
with open('file.txt', 'r') as f:
    for line in f:
        key, value = line.strip().split(':')
        key = key.split('#')[1]
        value = int(value.split('#')[0])
        if key in result:
            result[key] += value
        else:
            result[key] = value

for key, value in result.items():
    print('~#' + key + ':' + str(value) + '#~')

输出结果:

~#107802:216#~
~#105102:204#~
~#107747:101#~
~#110946:173#~
~#108231:14#~
~#108227:107#~
~#108214:13#~
~#108248:154#~
~#107859:154#~

可以看到,文件中的第1行和第8行的key为107802,对应的value相加得到216,输出的结果也反映了这一点。

请问一个txt文件里面是这样~#10780210#~~#10510212#~~#107747101#~~#110946173#~~#10823114#~~#108227107#~~#10821413#~~#107802206#~~#108248154#~~#105102192#~~#107859154#~要求~#到中的数字为一样的话就把后面的添加到一起

原文地址: https://www.cveoy.top/t/topic/bEeU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录