Python分割降雨量字符串后是否需要将split结果转为list?
结论
str.split() 方法本身默认返回的就是列表类型,不需要主动套一层list()做转换,冗余写法没有任何收益,更推荐直接使用rainfall_mi.split(",")的写法。
具体原因
- Python官方文档明确标注,split方法的返回值为
list[str],你可以执行print(type(rainfall_mi.split(",")))自行验证,输出结果就是<class 'list'>,和你套list()转换后的类型完全一致。 - 额外加
list()只会做一次无意义的遍历拷贝,虽然性能损耗微乎其微,但完全属于冗余代码,会增加不必要的阅读成本。 - 只有当你需要把其他非列表的可迭代对象(比如生成器、
map()/filter()返回的迭代器)转为列表时,才需要用到list()构造方法。
优化后的代码示例
这里额外补充了strip()处理分割后字符串自带的前置空格,逻辑更严谨:
rainfall_mi = "1.65, 1.46, 2.05, 3.03, 3.35, 3.46, 2.83, 3.23, 3.5, 2.52, 2.8, 1.85" num_rainy_months = 0 for data in rainfall_mi.split(","): if float(data.strip()) > 3: num_rainy_months += 1 print(num_rainy_months)
内容的提问来源于stack exchange,提问作者Maksim Maksimov
相关产品推荐
相关产品推荐

