为何代码1无法将列表字符串转整数,代码2却可以?
为什么代码1无法转换列表元素类型,而代码2可以?
问题的核心在于循环中变量操作的本质差异:
代码1的问题
在for i in x:的循环里,i只是每次从列表x中取出元素的临时副本。你执行i=int(i)只是把这个副本转换成了整数,但原列表x里的对应元素完全没被改动——就像你复印了一张写着数字的纸条,把复印件改成了数字,原件还是原样,所以最后打印x还是原来的字符串列表。
代码2的正确逻辑
代码2用for i in range(0,len(x))遍历的是列表的索引值,然后通过x[i]=int(x[i])直接定位到原列表的第i个位置,把这个位置的元素替换成转换后的整数。这相当于直接修改了原列表的内容,所以最后打印x就是整数列表了。
另外,还有更简洁的Pythonic写法,用列表推导式一步完成分割和类型转换:
x = [int(num) for num in input("Enter the notes with space after each element").split()] print(x)
内容的提问来源于stack exchange,提问作者Huseyin Y.
相关产品推荐
相关产品推荐

