Python字符数

sha*_*tac 0 python

我一直在浏览这个资源中的 python教程.以下代码中的所有内容都非常清楚,它会计算字符数.只有我不理解的部分是计数分配到列表并乘以120的部分.任何人都可以用简单的英语解释这个目的是什么.

def display(i):
    if i == 10: return 'LF'
    if i == 13: return 'CR'
    if i == 32: return 'SPACE'
    return chr(i)

infile = open('alice_in_wonderland.txt', 'r')
text = infile.read()
infile.close()

counts = 128 * [0]

for letter in text:
    counts[ord(letter)] += 1

outfile = open('alice_counts.dat', 'w')
outfile.write("%-12s%s\n" % ("Character", "Count"))
outfile.write("=================\n")

for i in range(len(counts)):
    if counts[i]:
        outfile.write("%-12s%d\n" % (display(i), counts[i]))

outfile.close()
Run Code Online (Sandbox Code Playgroud)

Mar*_*off 6

128 * [0] 创建一个包含128个元素的列表,每个元素的值为0.

>>> 3 * [0]
[0, 0, 0]
Run Code Online (Sandbox Code Playgroud)

然后,由于有效的ASCII字符在0-127范围内,每个字母访问计数中的索引(ord(letter)将返回字符的数值),并递增该索引处的值.

例如,字符'0'对应于数值48.因此,当'0'遇到a 时,counts[48]增加1.