我试图将我想要转换的整数数组转换为字母表中相应的字符,例如1 = a
。这就是我的矩阵的第一行:
[[16 12 9 9 12 9 9 9 8 12 9 9 12 19 3]]
我尝试使用下面的方法,但这会产生错误,有没有办法用数组做到这一点?
print chr(labels1[0] + ord('a'))
答案 0 :(得分:1)
你走了:
>>> l = [[16, 12, 9, 9, 12, 9, 9, 9, 8, 12, 9, 9, 12, 19, 3]]
>>> [chr(c + ord('a') - 1) for c in l[0]]
['p', 'l', 'i', 'i', 'l', 'i', 'i', 'i', 'h', 'l', 'i', 'i', 'l', 's', 'c']
或者,如果您将它们视为单个字符串:
>>> ''.join(chr(c + ord('a') - 1) for c in l[0])
'pliiliiihliilsc'
答案 1 :(得分:1)
如果你只有一个单词(作为一个列表),那么这应该可以正常工作
In [74]: L = [16, 12, 9, 9, 12, 9, 9, 9, 8, 12, 9, 9, 12, 19, 3]
In [75]: [chr(i+ord('a')-1) for i in L]
Out[75]: ['p', 'l', 'i', 'i', 'l', 'i', 'i', 'i', 'h', 'l', 'i', 'i', 'l', 's', 'c']
In [76]: ''.join([chr(i+ord('a')-1) for i in L])
Out[76]: 'pliiliiihliilsc'
如果您有多个单词可能需要与它们之间的空格组合,那么这应该可以解决问题:
In [77]: LL = [[16, 12, 9, 9, 12, 9, 9, 9, 8, 12, 9, 9, 12, 19, 3]]
In [78]: ' '.join([''.join([chr(i+ord('a')-1) for i in L]) for L in LL])
Out[78]: 'pliiliiihliilsc'
答案 2 :(得分:0)
如果你想要a=1
所以你想要基于这些字母顺序的字母,那么可以使用string
模块:
>>> import string
>>> l=[16,12, 9, 9, 12, 9, 9, 9, 8, 12, 9, 9, 12, 19, 3]
>>> ''.join([string.letters[i-1] for i in l])
'pliiliiihliilsc'
string.letters
是字母表的连接字符串!
>>> string.letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'