如何遍历二维数组统计各团队Y值出现次数并存入一维数组
二维数组逐行统计各团队Y值出现次数实现方案
前置初始化
因为你的团队编号范围固定为1-24,首先要准备存储统计结果的一维数组:
- 直接将数组长度设为25,所有元素初始值设为0,数组的0号索引位闲置不用,让1-24的数组索引直接对应1-24号团队的编号,省去后续索引偏移的换算步骤,减少计算错误。
- 参考初始化写法:
teamYCount = [0] * 25
核心循环遍历逻辑
逐行遍历从文件读取构建的二维数组,按每行Team# Y/N的格式提取内容完成统计:
- 每遍历到一行,先拆分出两个核心字段:当前行对应的团队编号、当前行的Y/N标记
- 注意:从文件读取的内容默认是字符串格式,需要把提取到的团队编号转成整数类型,才能匹配一维数组的索引位置
- 判断当前行的标记值是否为
Y,如果匹配,就给对应团队在一维数组里的计数位置加1;如果标记为N则不做任何操作
参考核心代码逻辑:
# 逐行遍历文件构建的二维数组 for row in file_2d_array: # 按行内的分隔规则拆分两个字段,比如按空格拆分 team_raw, flag = row.strip().split() # 转换团队号为整数 team_id = int(team_raw) # 匹配到Y就给对应位置计数+1 if flag == "Y": teamYCount[team_id] += 1
结果输出
遍历完成后,从1到24依次读取一维数组里的计数结果,就能按照你需要的格式输出:
for team_no in range(1, 25): print(f"Team {team_no} had a count of {teamYCount[team_no]}")
避坑提示
- 不要把二维数组的行索引直接当成团队号使用:二维数组的行顺序是文件的存储顺序,和团队编号没有绑定关系,必须从每行内容里提取真实的团队号作为一维数组的访问索引,否则统计结果会完全错乱。
- 可以增加简单的边界校验:如果遇到不在1-24范围内的非法团队号,直接跳过该行处理,避免触发数组越界报错。
- 注意字段拆分的分隔规则:如果文件里的行是用制表符、多空格做分隔,要把拆分规则对应调整,避免拆分出的字段错位。
内容的提问来源于stack exchange,提问作者JK3
相关产品推荐
相关产品推荐

