代码之家  ›  专栏  ›  技术社区  ›  Nick X Tsui

将阵列分成两半

  •  0
  • Nick X Tsui  · 技术社区  · 8 年前

    我喜欢将数组分为上半部分和下半部分。我尝试了以下代码,但不起作用:

    A = [1,2,3,4,5,6]
    B = A[:len(A)/2]
    C = A[len(A)/2:]
    

    错误消息显示:

    TypeError: slice indices must be integers or None or have an __index__ method
    

    我应该

    B = [0,1,2]
    
    C = [3,4,5]
    

    我想知道我该怎么做?谢谢

    3 回复  |  直到 8 年前
        1
  •  4
  •   Patrick Artner    8 年前

    您正在进行浮点运算-使用整数除法:

    A = [1,2,3,4,5,6]
    B = A[:len(A)//2]
    C = A[len(A)//2:]
    
    print(A,B,C)
    

    输出:

    ([1, 2, 3, 4, 5, 6], [1, 2, 3], [4, 5, 6])
    

    请查看此处的运算符: numeric-types-int-float-complex

        2
  •  3
  •   Boko Moko    8 年前

    试试这个

    A = [1,2,3,4,5,6]
    half = len(A)//2
    B = A[:half]
    C = A[half:]
    
        3
  •  2
  •   Dennis Soemers    8 年前

    错误消息指出您应该使用整数。除以2后,当前会产生一个浮点值。可以使用以下命令将其转换为整数 int() :

    A = [1,2,3,4,5,6]
    B = A[:int(len(A)/2)]
    C = A[int(len(A)/2):]
    
    print(B)
    print(C)
    

    输出:

    [1, 2, 3]
    [4, 5, 6]