gpt4 book ai didi

python切片数组在多种环境下产生不同的错误

转载 作者:行者123 更新时间:2023-11-30 23:24:28 24 4
gpt4 key购买 nike

我有2个开发环境。

首先,我将数据加载到数组中:

def loadData(filename):
ins = open(filename, "r")
array = []
for line in ins:
array.append(int(line))
ins.close()
return array

在第一个中,这可以正常工作

tempLeftArray = array[:(length / 2)]
tempRightArray = array[(length / 2):]

但在第二个环境中,我必须将代码更改为以下内容,因为我得到“切片索引必须是整数或无或具有 __index__ 方法”:

tempLeftArray = array[:int(length / 2)]
tempRightArray = array[int(length / 2):]

开发环境 I:Windows 8.1、Visual Studio 2013、Python 3.4.0

开发环境 II(错误一):Windows 7、Visual Studio 2013、Python 3.4.0

知道第一个问题有什么问题吗?为什么我需要更改添加强制转换的代码?

最佳答案

默认情况下,Python 3 中的除法给出 float 。并且您不能使用 float 作为列表的索引。

在这种情况下,您可能需要使用整数除法,如下所示

tempLeftArray  = array[:length // 2]
tempRightArray = array[length // 2:]

在 Python 2.x 中,

print(4 / 2)
# 2
print(4.0 / 2)
# 2.0
print(4.0 // 2)
# 2.0
print(4 // 2)
# 2

在 Python 3.4 中,

print(4 / 2)
# 2.0
print(4.0 / 2)
# 2.0
print(4.0 // 2)
# 2.0
print(4 // 2)
# 2

关于python切片数组在多种环境下产生不同的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23422550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com