如何在Python中遍历字符串?

如何在Python中遍历字符串?,第1张

如何在Python中遍历字符串?

您所问的问题(如何遍历字母)与您要解决的问题(如何计算字符串中字母的频率)不是同一问题。

您可以使用string.lowercase,如其他张贴者所建议的:

import stringallTheLetters = string.lowercase

要以“习惯”的方式进行处理,将字母视为数字,可以使用“ ord”和“ chr”功能。绝对没有理由完全做到这一点,但也许它更接近于您实际试图找出的结果:

def getAllTheLetters(begin='a', end='z'):    beginNum = ord(begin)    endNum = ord(end)    for number in xrange(beginNum, endNum+1):        yield chr(number)

您可以说它做对了,因为此代码显示

True

import stringprint ''.join(getAllTheLetters()) == string.lowercase

但是,要解决您实际上要解决的问题,您想使用字典并随身收集字母:

from collections import defaultdict    def letterOccurrances(string):    frequencies = defaultdict(lambda: 0)    for character in string:        frequencies[character.lower()] += 1    return frequencies

像这样使用:

occs = letterOccurrances("Hello, world!")print occs['l']print occs['h']

这将分别打印“ 3”和“ 1”。

请注意,这也适用于unipre:

# -*- coding: utf-8 -*-occs = letterOccurrances(u"héĺĺó, ẃóŕĺd!")print occs[u'l']print occs[u'ĺ']

如果您要尝试使用unipre的另一种方法(增加每个字符),您将需要等待很长时间。有数百万个unipre字符。

要实现以下原始功能(按字母顺序打印每个字母的计数):

def alphCount(text):    for character, count in sorted(letterOccurrances(text).iteritems()):        print "%s: %s" % (character, count)alphCount("hello, world!")


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5649430.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存