Calcolo frequenza caratteri in un testo.

Stato
Discussione chiusa ad ulteriori risposte.

imported_sydarex

Utente Silver
29 Giugno 2008
3
0
0
58
Un programmino utile se ci si interessa un pò alla crittografia: il calcolo della frequenza dei caratteri in un testo.

Prendete in input un file di testo, calcolate la frequenza percentuale dei caratteri alfabetici, restituite l'output.

Soluzione in Python:
Codice:
from sys import argv
from string import ascii_lowercase

def frequency(line):
	line = line.lower()
	res = {}
	for c in ascii_lowercase:
		res[c] = 0
	for c in line:
		if c in ascii_lowercase: res[c]+=1
	return res


res = {}
totalchars = 0
for c in ascii_lowercase:
	res[c] = 0
for line in open(argv[1], "r"):
	freq = frequency(line)
	totalchars += len(line)
	for c in ascii_lowercase:
		res[c] += freq[c]
result = []
for k, v in res.iteritems():
	result.append((v,k))
result.sort()
result.reverse()
for v, k in result:
	print k,"\t",((v*100.0)/totalchars)
 
Stato
Discussione chiusa ad ulteriori risposte.