从已排序整数列表输出中间整数的Python代码问题
求奇数长度已排序整数列表的中间值
需求说明
给定一个已排序的整数列表,输出其中间位置的整数,整数总个数始终为奇数。
输入输出示例
- 输入示例:
2 3 4 8 11 - 输出示例:
4
原有代码问题梳理
- 输入逻辑不匹配需求:需求输入为单行空格分隔的多个整数,原有代码要求先单独输入整数总个数,再逐行输入每个整数
- 存在冗余打印逻辑:会额外输出整数总个数、完整输入列表,不符合输出仅返回中间值的要求
- 缺少类型转换:存入列表的输入内容为字符串格式,未转换为整数类型
- 冗余的长度限制:需求未要求输入个数不能超过9,原有代码的个数校验属于多余逻辑
修正后代码(匹配示例输入格式)
# 读取输入并转换为整数列表 num_list = list(map(int, input().split())) # 计算中间下标(整数长度为奇数,整除2即可得到正确下标) mid_index = len(num_list) // 2 # 输出结果 print(num_list[mid_index])
如果需要保留原有代码的「先输入总个数、再逐行输入每个数」的交互逻辑,可使用以下修正版本:
inputs = [] num_inputs = int(input()) for i in range(num_inputs): # 转换为整数后存入列表 inputs.append(int(input())) middle_position = num_inputs // 2 # 仅输出中间值,移除多余打印 print(inputs[middle_position])
内容的提问来源于stack exchange,提问作者Mia Frothingham
相关产品推荐
相关产品推荐

