首页 > 解决方案 > 如何编写一个函数来检查文件中的元素是否重复?

问题描述

我有一个文件“f.txt”,其中有很多 str 类型的数字。每个数字最多有 9 位数字,最少 3 位数字。每个数字都由一个换行符分隔(所以每个数字都在自己的行中,我不知道如何正确格式化,所以下面的示例不是t 在格式方面准确)。

我想编写一个循环遍历文件并检查该文件中是否有重复的数字的函数。文件内部如下所示:

1244816 \n 2760125 \n 1102758 \n 713765 \n 6521147 \n 4711995 \n 1494276 \n 12336119 \n 8398120 \n 1215092 \n 8125139 \n ...

with open("ket.txt") as f:
line = f.readline()
status = True
while status:
    if line == #looping through the entire file to see if there is
               #identical number:
        status = False

我有一些伪代码?不过,我不确定如何实现评论部分。

标签: pythonfile

解决方案


假设我有一个文件f.txt包含:

12324
41564
7754564654654
123
87642
123
89745312

然后是下面的python脚本,我们称之为scan.py

def main():
    with open('f.txt', 'r') as f:
        numbers_seen = set()
        for n in f:
            if n in numbers_seen:
                print('{} appears more than once!'.format(n.strip()))
                return
            numbers_seen.add(n)


if __name__ == '__main__':
    main()

然后运行python scan.py将产生:

123 appears more than once!

推荐阅读