如何在python中将列表中的字母更改为对应的字母数字

2024-09-29 06:35:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试将python中的列表中的字母更改为它们对应的字母数字,以便在课堂上进行一个项目。我已经尝试了所有我知道的方法,但我仍然不能得到它的权利。如果有人能回答这个问题,这将大大帮助我在这方面,谢谢

def main():
miriam = True
def letters():
    a = 1
    b = 2
    c = 3
    d = 4
    e = 5
    f = 6
    g = 7
    h = 8
    i = 9
    j = 10
    k = 11
    l = 12
    m = 13
    n = 14
    o = 15
    p = 16
    q = 17
    r = 18
    s = 19
    t = 20
    u = 21
    v = 22
    w = 23
    x = 24
    y = 25
    z = 26
    A = 1
    B = 2
    C = 3
    D = 4
    E = 5
    F = 6
    G = 7
    H = 8
    I = 9
    J = 10
    K = 11
    L = 12
    M = 13
    N = 14
    O = 15
    P = 16
    Q = 17
    R = 18
    S = 19
    T = 20
    U = 21
    V = 22
    W = 23
    X = 24
    Y = 25
    Z = 26
while miriam == True:
    codeDeCode = input("would you like to code or decode? ")
    if codeDeCode == "code":
        code = input("enter the text you would like to code")
        listedCode = list(code)
        listedCodeAmount = len(listedCode)
        print(listedCodeAmount)
        for x in range(0, listedCodeAmount):
            listedCode[x] = letters()

        print(listedCode)

我得到的结果是

>>> main()
would you like to code or decode? code
enter the text you would like to codemiriam
6
[None, None, None, None, None, None]
would you like to code or decode? 

我想得到这样的结果

[13, 9, 18, 9, 1, 13]

我真的很感激有人能帮我,谢谢。你知道吗


Tags: ortononeyoutruemaindef字母
3条回答
for x in range(0, listedCodeAmount):
    listedCode[x] = letters()

这不是函数的工作方式。您的函数没有返回值,因此它返回None。您试图将该函数视为列表或其他容器。您只需在函数范围中设置一组变量,然后在完成时将它们放到地板上。你知道吗

import string


miriam = True

def get_letter_dict():
    return {val: idx for idx, val in enumerate(string.ascii_lowercase, 1)}

while miriam == True:
    letter_dict = letters()
    code_decode = input("would you like to code or decode? ")
    if code_decode.lower() == "code":
        code = input("enter the text you would like to code:\n")  # makes it easier to read
        listed_code= [letters[c] for c in code.lower()]
        print(listed_code)

所以我们做的第一件事就是导入string模块,这将帮助我们制作字典。然后我们将变量设置为True,以便稍后退出程序。你知道吗

接下来,我们做了一个函数来获取字典。你当然可以用手来做,但这要容易得多。我用了dictionary comprehension。注意我是如何在函数中使用return(进一步了解here)的。这样我就可以将函数的结果保存到变量中。注意,我使用string.ascii_lowercase构建字典。这是一个包含所有小写字母的字符串。在使用键或比较字符串时,大小写很重要。记住'm' != 'M'。您可以阅读有关枚举的内容here

下面的一些代码看起来应该很熟悉,所以我将不详细介绍。但是我确实改变了你的列表。我使用了一个列表理解,你可以阅读关于here。你知道吗

我还将变量的名称更改为建议的Python命名约定。变量在其他语言中被命名为likeThis,而在Python中我们将变量命名为like_this。它更容易阅读。你知道吗

你可以用字典:

My_Dictionary = {'a': 1, 'b': 2} # you can fill in the rest
My_Message = "abba"
My_Numbers = []

for letter in My_Message:
    My_Numbers.append(My_Dictionary[letter])
print My_Numbers
In [29]: mydict=dict(zip(string.letters,[ord(c)%32 for c in string.letters]))

In [30]: code="miriam"

In [31]: li=list(code)

In [32]: [mydict[i] for i in li]
Out[32]: [13, 9, 18, 9, 1, 13]

相关问题 更多 >