显示索引超出范围的列表更新语句

List updation statement showing index out of range

 List=eval(input('enter list of numbers and string :'))
    for x in range(1,len(List)+1,2):
        List[x]=List[x]*2
    print(List)

我想更新奇数索引处的值,但是,为什么我不知道语句 3 正在生成错误**List[x]=List[x]2 显示错误-索引超出范围**

您的代码存在三个问题:

    用户输入的
  1. eval()risky business。请改用 ast.literal_eval()
  2. 您的 for 循环有一个 off-by-one 错误。请记住,数组索引在 Python.
  3. 中从零开始
  4. List 不是一个好的变量名,因为它与 typing 模块中的 List 冲突。改用 lst 之类的东西。
import ast
lst = ast.literal_eval(input('enter list of numbers and string :'))
for x in range(0, len(lst), 2):
    lst[x] = lst[x] * 2
print(lst)