Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 字符串到数字列表函数不工作_Python_String_Numbers - Fatal编程技术网

Python 字符串到数字列表函数不工作

Python 字符串到数字列表函数不工作,python,string,numbers,Python,String,Numbers,我对Python编程非常陌生,一直在关注一些视频和网站教程。我正在处理一些编程实践问题,调试时遇到困难。这是我第一次练习编程。函数获取一个字符串并将其转换为数字列表。所以“a”变成了0,“b”变成了1,等等。这看起来很简单,但我得到了错误“indexer-ror:list-index-out-range”。我试过一些方法,但我不确定问题出在哪里。有人可以看看我的代码,看看我是否犯了任何明显的错误。非常感谢您的帮助 import sys import string impo

我对Python编程非常陌生,一直在关注一些视频和网站教程。我正在处理一些编程实践问题,调试时遇到困难。这是我第一次练习编程。函数获取一个字符串并将其转换为数字列表。所以“a”变成了0,“b”变成了1,等等。这看起来很简单,但我得到了错误“indexer-ror:list-index-out-range”。我试过一些方法,但我不确定问题出在哪里。有人可以看看我的代码,看看我是否犯了任何明显的错误。非常感谢您的帮助

    import sys
    import string
    import math

    def string2nlist(m):
    characters =    ['a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w''x''y''z']
    numbers = ['0''1''2''3''4''5''6''7''8''9''10''11''12''13''14''15''16''17''18''19''20''21''22''23''24''25']
    newList = []
    msgLen = len(m)         # var msgLen will be an integer of the length

    print 'Message before conversion: ' + m

    index = 0               # iterate through message length in while loop
    while index < msgLen:
        letter = m[index]   # iterate through message m
        i = 0
        while i < 26:
            if letter == characters[i]:
                newList[index] = numbers[i]
            i = i + 1
        index = index + 1
    print newList
    return newList


    message = 'hello'
    newMessage = string2nlist(message)

    print 'Message after conversion: ', newMessage

您的列表似乎格式不正确。尝试:

characters =    ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
numbers = ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25']
这:

Python将相邻的字符串文本编译成单个字符串。这在许多情况下都很有用,但不幸的是,这意味着它将您的列表变成:

characters = ['abcdefghijklmnopqrstuvwxyz']
numbers = ['012345678910111213141516171819202122232425']

如前所述,在字符之间添加逗号。

您好,欢迎使用Stackoverflow。您的列表无效。值应以逗号分隔@它们是有效的,只是它们没有做你认为它们在做的事情。Python隐式地将相邻字符串压缩为单个字符串!谢谢你!!我正在努力快速学习,犯愚蠢的错误。我添加了逗号,现在得到了“IndexError:list assignment index out-range”,我会继续尝试。再次感谢@jesiKat:您正在分配给一个空列表-Python不会像其他一些语言一样,在分配时自动在列表中创建插槽。如果你想附加到一个列表中,有一个函数:mylist.appendSomeValuel当我用谷歌搜索我的新错误时,我也发现了它,非常感谢!!我现在正在尝试:没有问题!如果你不介意的话,请把答案标为正确的绿色复选标记。
characters = ['abcdefghijklmnopqrstuvwxyz']
numbers = ['012345678910111213141516171819202122232425']