我需要一个以下列格式编码英语的数据集:
A = (1000000000000000000000000)
B = (0100000000000000000000000)
等等......
在Python中使用零填充字母索引的最简单方法是什么?
alphabet = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
for letter_index in range(len(alphabet)):
print( '{0} = ({1})'.format(alphabet[letter_index], str(letter_index).rjust(letter_index).ljust(26-letter_index)))
但我的输出是这样的:
A = (0 )
B = (1 )
C = ( 2 )
D = ( 3 )
E = ( 4 )
F = ( 5 )
G = ( 6 )
H = ( 7 )
I = ( 8 )
J = ( 9 )
K = ( 10 )
L = ( 11 )
M = ( 12 )
N = ( 13)
O = ( 14)
P = ( 15)
Q = ( 16)
R = ( 17)
S = ( 18)
T = ( 19)
U = ( 20)
V = ( 21)
W = ( 22)
X = ( 23)
Y = ( 24)
Z = ( 25)
最后,如果我想用逗号分隔数据集中的数字,最简单的方法是什么?
例如:
A = (1,0,0...)
答案 0 :(得分:4)
以下代码将为您提供所需的输出:
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
zero25 = "0" * 25
for idx in range (len (alpha)):
print "%s = (%s1%s)" % (alpha[idx], zero25[:idx], zero25[:25-idx])
具体来说,输出是:
A = (10000000000000000000000000)
B = (01000000000000000000000000)
C = (00100000000000000000000000)
D = (00010000000000000000000000)
E = (00001000000000000000000000)
F = (00000100000000000000000000)
G = (00000010000000000000000000)
H = (00000001000000000000000000)
I = (00000000100000000000000000)
J = (00000000010000000000000000)
K = (00000000001000000000000000)
L = (00000000000100000000000000)
M = (00000000000010000000000000)
N = (00000000000001000000000000)
O = (00000000000000100000000000)
P = (00000000000000010000000000)
Q = (00000000000000001000000000)
R = (00000000000000000100000000)
S = (00000000000000000010000000)
T = (00000000000000000001000000)
U = (00000000000000000000100000)
V = (00000000000000000000010000)
W = (00000000000000000000001000)
X = (00000000000000000000000100)
Y = (00000000000000000000000010)
Z = (00000000000000000000000001)
如果你想用逗号分隔它们,这就可以了:
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
zero25 = "0," * 25
print "%s = (1,%s)" % (alpha[0], zero25[:49])
for idx in range (1, len (alpha)):
print "%s = (%s,1%s)" % (alpha[idx], zero25[:idx*2-1], zero25[idx*2-1:-1])
输出:
A = (1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
B = (0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
C = (0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
D = (0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
E = (0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
F = (0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
G = (0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
H = (0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
I = (0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
J = (0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
K = (0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
L = (0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
M = (0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0)
N = (0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0)
O = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0)
P = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0)
Q = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0)
R = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0)
S = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0)
T = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0)
U = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0)
V = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0)
W = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0)
X = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0)
Y = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0)
Z = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1)
答案 1 :(得分:2)
你可以做类似的事情:
>>> '{:0<26}'.format('1'.zfill(1))
'10000000000000000000000000'
>>> '{:0<26}'.format('1'.zfill(2))
'01000000000000000000000000'
一个完整的例子是这样的:
>>> c = 'A'
>>> '{} = ({:0<26})'.format(c, '1'.zfill(ord(c)-ord('A')+1))
'A = (10000000000000000000000000)'
>>> c = 'B'
>>> '{} = ({:0<26})'.format(c, '1'.zfill(ord(c)-ord('A')+1))
'B = (01000000000000000000000000)'
>>> c = 'C'
>>> '{} = ({:0<26})'.format(c, '1'.zfill(ord(c)-ord('A')+1))
'C = (00100000000000000000000000)'
答案 2 :(得分:0)
>>> for i in range(26):
... print "{} = ({}1{})".format(chr(i+65),'0'*i,'0'*(25-i))
...
A = (10000000000000000000000000)
B = (01000000000000000000000000)
C = (00100000000000000000000000)
D = (00010000000000000000000000)
E = (00001000000000000000000000)
F = (00000100000000000000000000)
G = (00000010000000000000000000)
H = (00000001000000000000000000)
I = (00000000100000000000000000)
J = (00000000010000000000000000)
K = (00000000001000000000000000)
L = (00000000000100000000000000)
M = (00000000000010000000000000)
N = (00000000000001000000000000)
O = (00000000000000100000000000)
P = (00000000000000010000000000)
Q = (00000000000000001000000000)
R = (00000000000000000100000000)
S = (00000000000000000010000000)
T = (00000000000000000001000000)
U = (00000000000000000000100000)
V = (00000000000000000000010000)
W = (00000000000000000000001000)
X = (00000000000000000000000100)
Y = (00000000000000000000000010)
Z = (00000000000000000000000001)