【发布时间】:2017-10-30 20:24:20
【问题描述】:
我做了一个频率分析程序。它为某个字符串返回这个排序的元组:
frequency = [('Z', 110), ('D', 81), ('O', 78), ('V', 69), ('I', 69), ('J', 64), ('C', 58), ('N', 56), ('M', 54), ('Y', 35), ('G', 30), ('P', 27), ('B', 24), ('H', 23), ('X', 23), ('R', 19), ('T', 16), ('W', 15), ('A', 12), ('K', 12), ('F', 8), ('Q', 8), ('E', 2), ('S', 1)]
所以我想打印密码字母及其频率。另外,我有一个按英文字母频率排序的字母表(ordered_alphabet = "ETAOINSRHLDCUMFPGWYBVKXJQZ")我想把这些字母中的每一个放在我的密码字母和频率旁边,以帮助我弄清楚密码字母可能是什么。
所以我这样做:
for item in frequency:
print("%s : %s \t \t %s" % (item[0], item[1], ordered_alphabet[frequency.index(item)]))
这会返回:
Z : 110 E
D : 81 T
O : 78 A
V : 69 O
I : 69 I
J : 64 N
C : 58 S
N : 56 R
M : 54 H
Y : 35 L
G : 30 D
P : 27 C
B : 24 U
H : 23 M
X : 23 F
R : 19 P
T : 16 G
W : 15 W
A : 12 Y
K : 12 B
F : 8 V
Q : 8 K
E : 2 X
S : 1 J
为什么第一个ordered_letter(E) 与其他有序字母不一致?我都用\t。
【问题讨论】:
-
因为110比81长?
-
那为什么
V12 比 8 还长呢? @jonrsharpe -
因为这不会把你推到一个制表位上。
标签: python string python-3.x tabs