如何简化实现删除纯数字行的两行Python代码?
简化删除纯数字行的Python单行代码
你提供的代码确实能实现删除纯数字行的需求,但可以从可读性和简洁性上进一步优化——原代码里的enumerate属于冗余用法,列表选择的写法也不够直观。
简化方案1:整合拆分、过滤与拼接(推荐)
直接用生成器表达式结合join,逻辑清晰且性能更优:
text = ''' Test 1,2,3, 41 Test 5,6,7, 8800 8800 8800 8800. 8800.0 8,800 Test 9,10 Test 11,12 ''' print(''.join(line + '\n' for line in text.split('\n') if not line.isnumeric()))
简化方案2:极致单行写法(可读性稍降)
如果追求把所有逻辑压缩到一行,也可以直接将文本内容嵌入表达式:
print(''.join(line + '\n' for line in ''' Test 1,2,3, 41 Test 5,6,7, 8800 8800 8800 8800. 8800.0 8,800 Test 9,10 Test 11,12 '''.split('\n') if not line.isnumeric()))
优化说明
- 去掉了原代码中无用的
enumerate,直接遍历拆分后的行列表即可 - 用条件过滤
if not line.isnumeric()替代原有的列表索引选择,逻辑更直观 - 用
str.join()替代循环累加字符串,避免产生大量中间字符串对象,性能更优
运行上述代码后,输出结果和你提供的测试输出完全一致:
Test 1,2,3,
Test 5,6,7,
8800 8800
8800.
8800.0
8,800
Test 9,10
Test 11,12
内容的提问来源于stack exchange,提问作者Krantz
相关产品推荐
相关产品推荐

