不重复的行与求和
创始人
2025-01-12 13:00:08
0

下面是一个示例代码,用于读取一个文件中的行并计算它们的和,同时跳过重复的行:

def calculate_sum(filename):
    unique_lines = set()  # 用于保存不重复的行
    total_sum = 0  # 用于保存求和结果

    # 逐行读取文件内容
    with open(filename, 'r') as file:
        for line in file:
            line = line.strip()  # 去除行末尾的换行符和空白字符

            # 跳过重复的行
            if line in unique_lines:
                continue

            # 将行添加到集合中
            unique_lines.add(line)

            # 将行的数字部分转换为整数并累加到总和
            try:
                num = int(line)
                total_sum += num
            except ValueError:
                pass  # 忽略无法转换为整数的行

    return total_sum

# 使用示例
filename = 'input.txt'
result = calculate_sum(filename)
print(f'The sum of unique lines in "{filename}" is: {result}')

在上述示例代码中,我们首先创建一个空集合 unique_lines 用于保存不重复的行。然后,我们逐行读取文件内容,将每行首先去除末尾的换行符和空白字符,并判断该行是否已经在集合 unique_lines 中。如果是重复的行,则跳过该行继续处理下一行。如果是不重复的行,则将该行添加到集合中,并将行的数字部分转换为整数并累加到总和 total_sum 中。最后,返回总和作为结果。

请注意,在示例代码中,我们假设输入文件中的每一行都是一个有效的数字。如果文件中存在无法转换为整数的行,我们使用 try-except 块来捕获 ValueError 异常,并忽略该行。如果需要处理其他类型的行,可以根据实际情况进行相应的修改。

相关内容

热门资讯

安装ug未能链接到许可证服务器 安装UG未能链接到许可证服务器是UG用户在安装软件时常遇到的问题之一。该问题的解决方法需要技术向的知...
按转换模式过滤日志【%t】。 要按照转换模式过滤日志,可以使用正则表达式来实现。下面是一个示例代码,使用Java语言的Patter...
安装某些NPM包时,'... 在NPM中,'@'符号是用来分隔软件包名称和其特定版本或范围参数的。例如,您可以使用以下命令安装 R...
安装Pillow时遇到了问题:... 遇到这个问题,可能是因为缺少libwebpmux3软件包。解决方法是手动安装libwebpmux3软...
安卓 - 谷歌地图卡住了 问题描述:在安卓设备上使用谷歌地图应用时,地图卡住了,无法进行任何操作。解决方法一:清除应用缓存和数...
Android TV 盒子出现... Android TV 盒子上的应用程序停止运行可能是由于多种原因引起的,以下是一些可能的解决方法和相...
安装未成功。应用程序无法安装。... 在Android开发中,当应用程序无法安装并显示错误消息“安装未成功。应用程序无法安装。安装失败原因...
Apple Watch上的缩放... 若Apple Watch上的缩放度量无法正常工作,可能是由于以下原因导致的:1. 应用程序代码错误;...
Artifactory在网页上... 要在Artifactory的网页上列出工件,您可以使用Artifactory的REST API来获取...
安装Python库"... 安装Python库"firedrake"的解决方法如下:打开终端或命令提示符(Windows系统)。...