0

私はPythonで考えさせる方法に取り組んでいます。数字を取り、辞書から対応する「値」を与える簡単なアイデアがあります。

つまり、基本的には、1 つまたは複数の数字を指定して、それらの数字を単語に変換したいと考えています。

全体的なすべてのビューは、1 から 26 までの範囲のキーと a から z までの値を持つ辞書を持つことです。したがって、1 は "a" に等しく、26 は "z" に等しくなります。

変数 d = 1 があり、「a」の出力を取得する必要があります。次に、出力がa、b、c、dになる(1,2,3,4)のようなリストのこの関数のサイズを増やします。

これが私がこれまでに持っているものです。

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を反復する必要があります。xd

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 に答える