gpt4 book ai didi

python - 列表范围内索引的列表索引超出范围错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:48:30 25 4
gpt4 key购买 nike

我正在尝试索引列表以提取第一个 (0) 和第二个 (1) 项以供进一步计算。我的代码目前看起来像这样:

def calculate_scores(list):
sat = list[0]
gpa = list[1]
weighted_sat = (sat / 160)
weighted_gpa = (gpa * 2)

这是我想用来进行计算的函数。在我的 main 中调用此函数的部分如下所示:

testscores = []
semestergrades = []

testscores.append(floatlist[0:4])
semestergrades.append(floatlist[4:])

calculate_scores(testscores)

testscores 列表从中提取的列表有 8 个项目长,所有项目都是 float 的 - 但是,当我尝试运行此代码时,它给我尝试运行的部分的“列表索引超出范围”错误将变量“gpa”设置为等于 list[1]。但是,它似乎能够运行第一部分,将变量“sat”设置为等于 list[0]。知道为什么会这样吗?

最佳答案

当您应该使用 .extend() 或仅使用切片的结果时,您正在使用 .append():

# floatlist = [0.5, 1.5, 2.5, 3.5, 4.5, 5.5]
testscores = []
testscores.append(floatlist[0:4])
# testscores = [[0.5, 1.5, 2.5, 3.5]]

那么,您目前的做法是,testscores 是一个包含一个元素的列表,该元素是 floatlist[0:4]。当您尝试使用第二个元素(索引 1)时,您会收到 IndexError。

您可以使用 .extend() 而不是 .append() 将给定 iterable 中的所有项目添加到列表中。或者,你可以这样做

testscores = floatlist[0:4]

因为无论如何列表切片都会生成原始副本。

关于python - 列表范围内索引的列表索引超出范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58584211/

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