我有一个包含数千个单词的文本文件。我必须计算按字母顺序排列的单词数。以下是从我拥有的一堆其他代码中截取的:
Counter = 0
for word in wordStr:
word = word.strip()
if len(word) > 4:
a = 0
b = 1
while word[a] < word[b]:
a += 1
b += 1
Counter += 1
return Counter
这里有一些明显的问题,我知道,但不知道如何解决。我的推理是这样的:如果一个单词的第一个字母 < 该单词的第二个字母,则该单词的那部分是按字母顺序排列的。所以我需要对一个单词进行这种操作,直到我发现整个单词都是按字母顺序排列或遇到字母a>字母b的情况。
目前,当 word[a] < word[b] 时,我的代码会增加计数器。但是,我需要更改它,使其仅在整个单词按字母顺序排列时才会增加,而不仅仅是前两个字母。我的另一个问题是我得到了错误,因为最终 while 循环尝试比较由于我递增 a 和 b 的方式而不存在的字符串索引。我知道需要重写很多东西,而且我已经把逻辑搞定了……只是在努力实现它。
编辑:我忘记了我以前遇到过这个问题,有人在我的另一个问题上帮助我解决了这个问题。对困惑感到抱歉。