Python 3.9.1 迭代lst传递给tst2

Python 3.9.1 iterate lst to pass to tst2

我想从列表中读取所有元素,lst,检查值,更改为数字并保存在另一个列表中,lst2

lst = ['a','b','c'] 
lst2 = []

for x in range(len(lst)): 
    if lst[x] == 'a': 
        lst2[x] == 1
    if lst[x] == 'b':
        lst2[x] == 2
    if lst[x] == 'c':
        lst2[x] == 3

print(lst2)

错误:

IndexError: list index out of range.

我已经尝试过 while 循环,我得到了同样的信息。 我可以通过其他方式实现吗?

您需要用一些值填充 lst2 才能使订阅分配生效:

lst = ['a','b','c'] 
lst2 = [None] * len(lst)

for x in range(len(lst)): 
    if lst[x] == 'a': 
        lst2[x] = 1
    if lst[x] == 'b':
        lst2[x] = 2
    if lst[x] == 'c':
        lst2[x] = 3

print(lst2)

其中 [None] * len(lst) returns [None, None, None].

当然还有 list.append() 方法,如果你能确定使用的值将被添加到连续的索引中,这将非常方便。