检查字符串数量会根据行

时间:2015-08-05 04:38:27

标签: python python-3.x

标题非常糟糕,不知道怎么说。

基本上我需要检查来自txt文件的输入是否按字典顺序排列。我从文件中读取,将单个单词加载到列表中,然后使用python' s' < '如果是真的。

我需要帮助的部分正在做

word1< word2< WORD3

无论多少单词都在列表中,并且文件中有许多行,所以适当的次数。 因此,如果第1行只有2个字,那么它只会做

word1< WORD2

但第1行是5个单词,它会检查

word1< word2< word3< word4<的word5

我的代码目前在这个地方,因为我老实说难倒,我对python相对较新,所以解释会有所帮助

with open ("lines.txt", "r") as myfile:
   linelist = myfile.readlines()
   count = len(linelist)
   l1 = linelist[0]
   line1split = l1.split()
   l1count = len(line1split)
   l2 = linelist[1]
   line2split = l2.split()
   l2count = len(line2split)
   l3 = linelist[2]
   line3split = l3.split()
   l3count = len(line3split)
   l4 = linelist[3]
   line4split = l4.split() 
   l4count = len(line4split) 
   l5 = linelist[4]
   line5split = l5.split()
   l5count = len(line5split) 
   line1split = l1.split()

     if line1split[0] < line1split[1]: 
       print('Line 1 is ascending.')

1 个答案:

答案 0 :(得分:2)

执行此操作的一种简单方法是使用嵌套for循环,首先使用循环迭代该行,然后使用第二个for循环迭代该行中的每个单词。示例 -

with open ("lines.txt", "r") as myfile:
    for i, line in enumerate(myfile):
        flag = True
        words = line.split()
        for j, word in enumerate(words):
            if j == len(words) - 1:
                break
            elif word >= words[j+1]:
                flag = False
                break
        if flag:
            print('Line {} is ascending'.format(i+1))