代码之家  ›  专栏  ›  技术社区  ›  user62617

python insert没有得到想要的结果?

  •  5
  • user62617  · 技术社区  · 15 年前
    #!/usr/bin/python
    
    numbers = [1, 2, 3, 5, 6, 7]
    
    clean = numbers.insert(3, 'four')
    
    print clean
    # desire results [1, 2, 3, 'four', 5, 6, 7]
    

    我得到“无”。我做错什么了?

    4 回复  |  直到 15 年前
        1
  •  15
  •   Alex Martelli    15 年前

    列表上的可变方法往往返回 None , 正如您所期望的那样,修改后的列表——比如metods通过在适当的位置修改列表来执行其效果,而不是通过构建和返回一个新的列表来执行。所以, print numbers 而不是 print clean 将显示更改后的列表。

    如果你需要 numbers 原封不动,先复印一份,然后再修改:

    clean = list(numbers)
    clean.insert(3, 'four')
    

    这会产生你想要的整体效果: 数字 不变, clean 是更改的列表。

        2
  •  7
  •   Ned Deily    15 年前

    insert方法就地修改列表,不返回新的引用。尝试:

    >>> numbers = [1, 2, 3, 5, 6, 7]
    >>> numbers.insert(3, 'four')
    >>> print numbers
    [1, 2, 3, 'four', 5, 6, 7]
    
        3
  •  1
  •   Tom    15 年前

    insert将把这个项目插入到给定的列表中。把数字打印出来,你就会看到你的结果。insert不返回新列表。

        4
  •  1
  •   RedGlyph sumit sonawane    15 年前

    list.insert()运算符不返回任何内容,您可能需要:

    print numbers