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



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

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的情况。

目前,当单词[a]<单词[b]。然而,我需要改变这一点,这样它只会在整个单词按字母顺序排列时增加,而不仅仅是前两个字母。我的另一个问题是,我会出错,因为最终while循环试图比较由于我递增a和b的方式而不存在的字符串索引。。只是在努力实现它。

编辑:我忘了我以前遇到过这个问题,我的另一个问题上有人帮我解决了。很抱歉造成混乱。

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

您可能还想先将字符串转换为小写(或大写——只要它一致就没关系),因为这会影响排序顺序:所有大写字母都在小写字母之前,所以Cat会测试为已经按字母顺序排列,即使它不是。您可以在字符串对象上使用.lower()方法来执行此操作。

由于这看起来像是家庭作业,我不会发布工作代码,但根据我给你的内容,它应该很简单。

最新更新