使用python查找系列中缺少的数字

时间:2015-01-26 04:32:06

标签: python

我有一个带数字的文件,我需要找到丢失的文件。

cat head.txt
7045000000
7045000001
7045000003

如您所见,缺少数字7045000002。此代码无效:

check=int(7044999999)
with open('head.txt' , 'r') as f:
    for line in f:
        myl = line[:5]
        if myl == '70450':
            if int(line) == check+1:
                check = int(line)
            else:
                check = int(line)+1
                print check

数字应以70450开头,并且“myl”变量是必需的。

1 个答案:

答案 0 :(得分:1)

这是逻辑;

for i in range(7045000000,9045000000):
    if i not in line:
        print ("{} is missing".format(i))

只需使用for循环的基础知识即可。 9045000000是一个随便的数字。我实际上并不知道您的数据库,因此您可以(应该)更改range()函数中的最后一个数字。

以下是演示;

with open("coz.txt") as f:
    rd=f.readlines()
    x=[t.strip("\n") for t in rd]
    for i in range(7045000000,7045000004):
        if str(i) not in x:
            print ("{} is missing".format(i))

输出;

>>> 
7045000002 is missing
>>> 

这是我尝试过这些代码的.txt文件;

enter image description here