python - 将长数字转换为对应的字母组合

标签 python letters-and-numbers

给定一个数字,将其转换为相应字母的所有可能组合。例如,如果给定数字 1234,它应该输出 abcdlcdawd,因为这些组合与字母对应的数字可以是 1 2 3 412 3 41 23 4

我正在考虑用 Python 实现这一点的方法,但老实说我被难住了。有什么提示吗?

到目前为止,我基本上只设置了一个简单的系统来将单个数字转换为字母。

最佳答案

制作str

实现partitionhere .

过滤数量超过 26 的列表。

编写返回字母的函数。

def alphabet(n):
    # return " abcde..."[n]
    return chr(n + 96)


def partition(lst):
    for i in range(1, len(lst)):
        for r in partition(lst[i:]):
            yield [lst[:i]] + r
    yield [lst]


def int2words(x):
    for lst in partition(str(x)):
        ints = [int(i) for i in lst]
        if all(i <= 26 for i in ints):
            yield "".join(alphabet(i) for i in ints)


x = 12121
print(list(int2words(x)))
# ['ababa', 'abau', 'abla', 'auba', 'auu', 'laba', 'lau', 'lla']

关于python - 将长数字转换为对应的字母组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32733262/

相关文章:

php - 生成带有扭曲的数字字母组合的算法

python - deepcopy 不尊重元类

python - Django: "Object is not iterable",当尝试修改所述对象时

python - pytest-mock 如何修补嵌套函数

python - Keras 无法使用 theano 后端进行编译

excel - 比较Excel中的两个单元格并返回匹配的字符数

Java - 帮助将字母转换为整数,加5,然后转换回字母

java - 分开的数字和字母

python - {"message":"Missing Authentication Token"} 当无服务器 Lambda 函数的 curl 和端点时

java - 如何将数字转换成与其匹配的字母?