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

Python技术求助:如何用函数生成符合规则的新整数列表

没问题,这其实是个很典型的列表/数组遍历+条件判断的场景,我给你几种常见编程语言的实现方式,你可以根据自己的开发环境来选:

以Python为例(简洁高效)

Python处理这类列表转换非常方便,用列表推导式一行就能搞定,逻辑清晰还省代码:

# 先定义你的原列表
GRADES = [这里填入你的30个0-100整数]
# 生成新列表
NEW = [grade if grade == 97 else grade + 3 for grade in GRADES]

简单解释:遍历GRADES里的每个元素,要是元素等于97就直接保留原值,否则就给它加3后放进NEW列表里,自动保证新列表和原列表长度一致(都是30个元素)。

如果觉得列表推导式不够直观,也可以用普通循环一步步来,逻辑完全一样:

GRADES = [这里填入你的30个0-100整数]
NEW = []
for grade in GRADES:
    if grade == 97:
        NEW.append(grade)
    else:
        NEW.append(grade + 3)

如果是用C语言实现

看你写了GRADES[30]这种数组形式,可能是在C环境下开发,那可以这样写:

#include <stdio.h>

int main() {
    // 初始化原数组
    int GRADES[30] = {/* 这里填入你的30个整数 */};
    int NEW[30];
    
    // 遍历处理每个元素
    for (int i = 0; i < 30; i++) {
        if (GRADES[i] == 97) {
            NEW[i] = GRADES[i];
        } else {
            NEW[i] = GRADES[i] + 3;
        }
    }
    
    // 可选:打印结果验证
    for (int i = 0; i < 30; i++) {
        printf("NEW[%d] = %d\n", i, NEW[i]);
    }
    return 0;
}

解释:通过for循环遍历数组的每个索引,判断当前元素是否为97,符合条件就直接赋值给新数组对应位置,否则加3后再赋值,最终得到30个元素的目标数组。


额外提一句:你提到“GRADES中值为97的元素保持原数值(因加3会超出0-100范围)”,其实97+3=100刚好在0-100范围内,可能是笔误?如果你的真实需求是所有加3后超过100的元素都保持原值,那只需要把判断条件改一下就行:

  • Python里改成:NEW = [grade if grade + 3 > 100 else grade + 3 for grade in GRADES]
  • C语言里改成:if (GRADES[i] + 3 > 100) { NEW[i] = GRADES[i]; } else { NEW[i] = GRADES[i] + 3; }

当然啦,还是以你最初明确的规则为准~

内容的提问来源于stack exchange,提问作者Wal Choice

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:36:54