0

我正在研究如何让我在 python 中思考。我有一个简单的想法,它将接受一个数字并从字典中给出相应的“值”。

所以基本上我想给出一个或多个数字,然后把这些数字变成一个词。

总体上所有视图是有一个字典,其键范围为 1 到 26,值从 a 到 z。所以 1 等于“a”,26 等于“z”。

我有一个变量 d = 1,需要得到 'a' 的输出。然后为(1,2,3,4)之类的列表增加此函数的大小,其输出将是a,b,c,d。

这是我到目前为止所拥有的。

d = 1

def code_scram(x):


    c = {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'}

    scram = ""

    for i in d:
        if i in c:
            scram += c[i]
    return scram

print code_scram(d)

然而,它并没有按计划进行。

4

1 回答 1

1

您的for循环应该遍历x,而不是d

def code_scram(x):
    c = {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'}
    scram = ""
    for i in x:
        if i in c:
            scram += c[i]
    return scram

print code_scram([1,2,3,4])

结果:

abcd

该函数仅适用于列表,因此传入整数d将不起作用。而是传入一个列表。

d = [1]
print code_scram(d)

如果您希望该函数适用于列表孤立整数,您可以执行类型检查,并根据需要进行转换。

def code_scram(x):
    if isinstance(x, int):
        x = [x]
    c = {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'}
    scram = ""
    for i in x:
        if i in c:
            scram += c[i]
    return scram

d = 1
print code_scram(d)

结果:

a
于 2013-06-03T17:19:21.193 回答