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
相关产品推荐
相关产品推荐

