Python 基于现有字符串数组创建新的数字数组

Python 基于现有字符串数组创建新的数字数组,python,Python,我试图通过比较字符串中的每个字符与alpha_列表中的每个字符来创建一个与字符串相关的值列表。这是用于编码过程,以便以后可以添加数值 我不断地从我尝试过的各种不同的方法中得到多个错误 import string alpha_list = " ABCDEFGHIJKLMNOPQRSTUVWXYZ" ints = "HELLO WORLD" myotherlist = [] for idx, val in enumerate(ints): myotherlist[idx] = alpha

我试图通过比较字符串中的每个字符与alpha_列表中的每个字符来创建一个与字符串相关的值列表。这是用于编码过程,以便以后可以添加数值

我不断地从我尝试过的各种不同的方法中得到多个错误

import string

alpha_list = " ABCDEFGHIJKLMNOPQRSTUVWXYZ"
ints = "HELLO WORLD"
myotherlist = []

for idx, val in enumerate(ints):
    myotherlist[idx] = alpha_list.index(val)

print(myotherlist)
现在这是我当前的错误读取

Traceback (most recent call last):
  File "C:/Users/Derek/Desktop/Python/test2.py", line 11, in <module>
    myotherlist[idx] = alpha_list.index(val)
IndexError: list assignment index out of range
我是python新手,所以如果我犯了一个非常明显的错误,请随意批评

我正在查找的printmyotherlist输出应如下所示:

[8,5,12,12,15,0,23,15,18,12,4]

只需使用append:

for  val in ints:
    myotherlist.append(alpha_list.index(val))
print(myotherlist)
myotherlist是一个空列表,因此无法使用myotherlist[idx]进行访问,因为没有元素0等

或者只需使用:

或使用map的功能性方法:

map(alpha_list.index,ints))
两种输出:

In [7]: [alpha_list.index(val) for val in ints]
Out[7]: [8, 5, 12, 12, 15, 0, 23, 15, 18, 12, 4]

In [8]: map(alpha_list.index,ints)
Out[8]: [8, 5, 12, 12, 15, 0, 23, 15, 18, 12, 4]
导入字符串-不要使用,很多书都说最好使用内置的str

myotherlist[idx]=alpha_list.indexval是出现错误的原因。这是说‘转到idx索引并将alpha_list.indexval放在那里,但是由于列表是空的,所以不能这样做

所以如果你更换

for idx, val in enumerate(ints):
    myotherlist[idx] = alpha_list.index(val)

你会得到预期的结果!
如果有什么不清楚的,请告诉我

为了明确起见,我正在尝试缩短格式,在if和elif语句中列出每个字母并指定一个数字。这里有没有说明不要使用string模块?我想不起来我会用其他方式声明的名称,但我记得我读到过,字符串模块与早期版本的python一起用于一些函数,这些函数后来将作为str的内置方法实现。因此,没有真正的理由使用该模块,而且作为一个初学者,不知道它们之间的差异或缺乏差异会令人困惑。所以不要使用那是不正确的,字符串模块仍然在使用,并且有许多方法和属性没有包含在str模块中。我从来没有说过它没有被使用。。。helpstring声明:警告:您在这里看到的大多数代码现在都不正常使用。从Python1.6开始,这些函数中的许多都是作为标准字符串对象上的方法实现的。它们过去是由一个名为strop的内置模块实现的,但是strop现在已经过时了。导入字符串-不要用那些书说使用内置str是什么意思?我的其他列表=[alpha_list.indexval for val in ints]就是我要用的,非常感谢!我曾经尝试过这种方法,我甚至认为我尝试过你的第一种方法,但我认为我用了而不是[]再次感谢你!
for idx, val in enumerate(ints):
    myotherlist[idx] = alpha_list.index(val)
for letter in ints:  #iterates over the 'HELLO WORLD' string
    index_to_append = alpha_list.index(letter)
    myotherlist.append(index_to_append)