提取文件中整数与浮点数后,Python函数返回列表元素换行原因
问题原因分析
这种列表显示格式变化的核心原因是交互式Python环境(比如Jupyter Notebook、IPython)的默认输出规则:
- 当列表里全是整数(int类型)元素时,环境会用紧凑的单行格式展示整个列表;
- 当列表同时包含整数和浮点数(混合数值类型)时,环境会自动切换为多行显示,每个元素单独占一行。
你的代码逻辑本身并没有导致元素换行的错误——你往列表里添加的都是int或float类型的数值,没有插入换行符或其他特殊字符。
另外提一句:你的浮点数提取逻辑有个小瑕疵,如果遇到带多个小数点的字符串(比如"1.2.3"),会错误地尝试转成float并抛出报错。如果想优化判断逻辑,推荐用try-except的方式更稳妥:
def read_numbers(path: str) -> list: with open(path) as f: file_elem = f.read().split() a = [] for x in file_elem: try: a.append(int(x)) except ValueError: try: a.append(float(x)) except ValueError: continue return a
内容的提问来源于stack exchange,提问作者Bubu
相关产品推荐
相关产品推荐

