用Python中的字母计数

时间:2016-07-01 17:44:31

标签: python python-2.7 count letter

目标:按字母而不是整数计算。

Python-2.7中是否有一种简洁的字母计数方法?我有一个程序,我在那里逐个枚举一些数据,而且我的解决方案对于阅读我的代码的人来说并不是很清楚。

我一直在查看标准文档,但我没有看到任何内置文件。

我在寻找什么:

for count in range('A', 'G'):
    print count

output[1]:
'C'
'D'
'E'
'F'

我该怎么做:

解决方案A:使用字典

letters = {
    1:'A'
    2:'B'
    3:'C'
    ...
}

for count in range(2, 6):
    print letters[count]

解决方案B :使用chr()ord()

for count in range(2, 6):
    print chr(ord('A') + count)

相关性:

我正在制作一张星期日纸上的热像图解算器。我的算法的一部分涉及按字母代码对单词进行分类。例如,

print letter_code('banana')
output[2]: 'ABCBCB'

4 个答案:

答案 0 :(得分:2)

import string
alphabet = string.ascii_uppercase

>>> for char in alphabet[2:6]:
...     print char
...     
C
D
E
F
>>> 

答案 1 :(得分:1)

您的解决方案B 可以表达:

for charcode in range(ord('B'), ord('G')):
    print chr(charcode)

但要攻击你的大问题,那该怎么办:

from string import ascii_lowercase, ascii_uppercase

def letter_code(string):
    indexes = [ascii_lowercase.index(letter) for letter in string]
    return "".join(ascii_uppercase[indexes.index(number)] for number in indexes)

print letter_code('banana')

给你" ABCBCB"

答案 2 :(得分:0)

这是一个可以做你想做的功能:

import string

def enumerate(first, last):
    alphabet = string.ascii_uppercase
    start = alphabet.index(first)
    while alphabet[start] != last:
        print alphabet[start]
        start += 1
    print last

答案 3 :(得分:0)

我对我的特定应用感兴趣的另一个解决方案是:

Loop on random generation of RF fits, 

Get RF prediction on the  data for prediction
Select the model which best fits the "predicted data" (not the calibration data).