繁体   English   中英

使用 function 将 integer 转换为字母序列

[英]Converting an integer to a sequence of letters using a function

我想创建一个 function,它接受一个 integer(比如 234)并将其作为字母 (cde) 返回。

我设法形成了一些代码,将数字分成数字部分

def toLetter(n):
    x = str(n)
    for elem in x:
        print(elem)
    d = {0 : 'a', 1 : 'b', 2 : 'c', 3 : 'd', 4 : 'e', 5 : 'f', 6 : 'g', 7 : 'h', 8 : 'i', 9 : 'j'}
    for n in x:
        d[n]

toLetter(234)

但我真的很挣扎;

  1. 如何将字典中的 map 放到数字上
  2. 得到它返回它作为:
cde 

而不是

c
d
e

任何帮助将不胜感激。 我是新来的,所以这可能是微不足道的,但我来这里是不得已的选择。

您应该使用字符串作为字典中的键。

一种简单的方法,使用生成器/理解:

def toLetter(num):
    d = dict(zip('0123456789', 'abcdefghij'))
    return ''.join(d[i] for i in str(num))

更好的是,使用翻译表:

def toLetter(num):
    t = str.maketrans('0123456789', 'abcdefghij')
    return str(num).translate(t)

例子:

toLetter(123)
# 'bcd'

因此,为了 select 字典中的元素,您必须将数字转换回整数。 此外,为了创建最终答案,我只需将每个字母 append 转换为一个字符串并打印最终字符串:

def toLetter(n):
    d = {0 : 'a', 1 : 'b', 2 : 'c', 3 : 'd', 4 : 'e', 5 : 'f', 6 : 'g', 7 : 'h', 8 : 'i', 9 : 'j'}
    
    x = str(n)
    result = ''
    
    for elem in x:
        result = result + d[int(elem)]
    
    print(result)

toLetter(234)

Output:

cde

暂无
暂无

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

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