代码之家  ›  专栏  ›  技术社区  ›  Sahil Panhalkar

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

  •  1
  • Sahil Panhalkar  · 技术社区  · 2 年前
     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 回复  |  直到 2 年前
        1
  •  0
  •   BrokenBenchmark Miles Budnek    2 年前

    你的代码有三个问题:

    1. eval() 关于用户输入是 risky business 使用 ast.literal_eval() 相反
    2. 你的 for 循环有一个off by one错误。请记住,在Python中,数组索引从零开始。
    3. List 不是一个好的变量名,因为它与 列表 typing 单元使用类似 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)