浏览单词列表并计算按字母顺序排列的单词

时间:2012-07-11 19:34:23

标签: python python-2.7

我有一个包含数千个单词的文本文件。我必须按字母顺序计算单词的数量。以下是从我得到的一堆其他代码中删除的:

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

这里有一些明显的错误,我知道,但不知道如何解决它。我的理由是这样的:如果一个单词的第一个字母是&lt;这个词的第二个字母,这个词的一部分是按字母顺序排列的。所以我需要经历并对一个单词执行这种操作,直到我发现整个单词是按字母顺序排列或遇到字母a>&gt;的情况。信b。

目前,我的代码在单词[a]&lt;字并[b]。但是,我需要改变它,所以它只会在整个单词按字母顺序排列时增加,而不仅仅是前两个字母。我的另一个问题是我得到错误,因为最终while循环尝试比较不存在的字符串索引,因为我增加a和b的方式。我知道很多需要重写,我已经把逻辑降低了......只是努力实现它。

编辑:我忘记了之前我遇到过这个问题而且我的另一个问题上有人帮助我解决了这个问题。对不起,感到困惑。

1 个答案:

答案 0 :(得分:4)

查看单词是否按字母顺序排序的简单方法是对其进行排序,然后查看排序后的版本是否与原始版本相同。 Python有一个函数sorted(),可用于对字符串进行排序;但是,结果将作为列表出现。因此,您需要将已排序的版本转换回字符串,或者将原始字符串转换为列表(第二个更容易,只需将字符串传递到list()),然后再进行比较。

您可能还希望首先将字符串转换为小写(或大写 - 只要它一致无关紧要),因为这会影响排序顺序:所有大写字母都在小写字母之前,所以{ {1}}将按字母顺序进行测试,即使它不是。您可以使用字符串对象上的Cat方法执行此操作。

由于这看起来像是家庭作业,所以我不会发布工作代码,但是从我给你的内容中整理起来应该非常简单。