You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python列表切片/copy()赋值后被识别为整数,逐科目取最高分问题求解

科目最高分统计类型错误解决方案

错误原因

你遇到的a/b/c变量为int类型的问题,和copy()、切片复制方法本身无关,是变量赋值逻辑错误:

  • subject_score = [0, 0, 0, 0, 0]是长度为5的整数列表,subject_score[:]切片后返回的还是包含5个整数的列表
  • 直接用a, b, c = subject_score[:]解包时,Python会将列表内的前三个整数0依次赋值给a、b、c,三个变量自然都是int类型,后续执行a[i]这类列表操作就会报错

修复方法

如果需要a、b、c为三个独立的、初始值和subject_score一致的列表,要分别进行三次拷贝:

subject_score = [0, 0, 0, 0, 0]
a = subject_score.copy()
b = subject_score.copy()
c = subject_score.copy()
# 也可以用切片写法:a = subject_score[:]

额外问题修复

你原有代码还有其他可修正的问题:

  1. 字符串和整数不能直接拼接,输出时需要将最高分转为字符串,比如print("Math:"+ str(minscore1))
  2. range(0, len(subject_score) - 1)会漏掉列表最后一个元素,应改为range(0, len(subject_score))
  3. 不需要手动循环计算最大值,直接用Python内置的max()函数即可简化代码

完整可运行代码(符合需求)

以下代码实现了从输入录入分数、统计每个科目最高分的完整功能:

subjects = ["数学", "英语", "科学"]
score_count = 5
all_scores = []

# 录入分数
for sub in subjects:
    print(f"请输入{sub}的{score_count}个分数:")
    sub_scores = []
    for _ in range(score_count):
        sub_scores.append(int(input()))
    all_scores.append(sub_scores)

# 输出最高分
for idx, sub_name in enumerate(subjects):
    best_score = max(all_scores[idx])
    print(f"{sub_name} Best Score: {best_score}")

如果你需要保留原有代码的逻辑,修复后的版本如下:

subject_score = [0, 0, 0, 0, 0]
# 正确初始化三个列表
a = subject_score[:]
b = subject_score[:]
c = subject_score[:]
# 示例分数数据,可替换为你自己的输入逻辑
midterm_score = [
    [0,20,30,40,50],
    [0,40,50,80,90],
    [0,90,78,90,97]
]

for i in range(len(subject_score)):
    a[i] = midterm_score[0][i]
    b[i] = midterm_score[1][i]
    c[i] = midterm_score[2][i]

# 计算数学最高分
minscore1 = a[0]
for i in range(1, len(subject_score)):
    if minscore1 < a[i]:
        minscore1 = a[i]
# 计算英语最高分
minscore2 = b[0]
for i in range(1, len(subject_score)):
    if minscore2 < b[i]:
        minscore2 = b[i]
# 计算科学最高分
minscore3 = c[0]
for i in range(1, len(subject_score)):
    if minscore3 < c[i]:
        minscore3 = c[i]

print(a, b, c)
print("Math:" + str(minscore1))
print("English:" + str(minscore2))
print("Science:" + str(minscore3))

内容的提问来源于stack exchange,提问作者J.Moon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 16:24:03