繁体   English   中英

如何将数字转换为其对应的字母

[英]How to convert number to its corresponding alphabet

例如, 1应该给我字母a

2 > b
3 > c
... 
26 > a
And 27 should give an again
28 > b
.. Till 9999

以下代码仅适用于 26 个数字

import string
di=dict(zip(string.letters,[ord(c)%32 for c in string.letters]))
di['c']

Output 是3

有人可以帮忙吗?

这会做

def num2char(num):
    return chr(((num-1) % 26) + ord('a'))

您不需要通过字典 go 以这种方式将数字转换为字母。 您可以将模应用于一串字母中的位置

letters = "abcdefghijklmnopqrstuvwxyz"
for i in range(1,1000):
  print(i,">",letters[(i-1)%26])

output:

1 > a
2 > b
3 > c
4 > d
5 > e
6 > f
7 > g
8 > h
9 > i
10 > j
11 > k
12 > l
13 > m
14 > n
15 > o
16 > p
17 > q
18 > r
19 > s
20 > t
21 > u
22 > v
23 > w
24 > x
25 > y
26 > z
27 > a
28 > b
29 > c
...

看看其中任何一个是否是您正在寻找的:

print (ord ('a') - 96)

print (chr (1 + 96))

你的数据结构很奇怪。 如果您的输入字母表包含 9999 个符号,那么您需要一个包含那么多元素的字典。 但实际上你根本不需要字典,只需观察输入数字模 26 加 1 映射到以a开头的字符代码。

def strmap(numbers):
    base = ord('a')
    mapped = [chr(base + (n-1)%26) for n in numbers]
    return ''.join(mapped)

演示: https://ideone.com/FeVkO4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM