Python中两种for循环将字符串列表转为整数列表的差异解析
两种for循环处理列表的核心差异
你的代码为什么无效?
当你用 for height in heights 遍历列表时,height 只是原列表元素的临时拷贝。你执行 height = int(height) 只是把这个临时变量转换成了整数,完全没有修改原列表里的元素。原列表中的字符串元素从头到尾都没被改动,所以打印出来还是原来的字符串列表。
正确代码为什么能生效?
for n in range(0, len(heights)) 是通过索引遍历列表。heights[n] 直接指向原列表中对应位置的元素,执行 heights[n] = int(heights[n]) 时,是直接把原列表里的字符串元素替换成了整数,所以最终列表会变成你想要的整数类型。
额外推荐:更简洁的写法
其实还有更常用的列表推导式写法,一行就能完成转换:
heights = [int(h) for h in heights]
内容的提问来源于stack exchange,提问作者Farangis
相关产品推荐
相关产品推荐

