Python输入空格分隔数字存列表后遍历输出元素的代码问题
问题排查:输入数字列表输出索引而非元素
问题场景
输入以空格分隔的数字,存入列表后逐个输出列表中的元素。现有代码如下:
lst = input() test_list =[] for ele in lst.split(): n_int = int(ele) test_list.append(n_int) for i in range(len(test_list)): print(i)
当输入示例4 7 9时,预期输出4 7 9,但实际输出为0 1 2。
问题原因
第二个循环中,range(len(test_list))生成的是列表的索引序列(从0开始的整数),变量i存储的是每个元素的索引位置,而非列表中的实际元素,因此输出的是0、1、2这些索引值,而非目标数字。
修正方案
有两种简单的修正方式:
方式一:直接遍历列表元素
直接循环遍历列表中的每个元素,无需借助索引:
lst = input() test_list =[] for ele in lst.split(): n_int = int(ele) test_list.append(n_int) # 直接遍历列表元素并输出 for num in test_list: print(num)
方式二:通过索引获取元素
如果需要保留基于索引的循环写法,需通过索引访问列表对应的元素:
lst = input() test_list =[] for ele in lst.split(): n_int = int(ele) test_list.append(n_int) # 通过索引获取列表元素并输出 for i in range(len(test_list)): print(test_list[i])
内容的提问来源于stack exchange,提问作者Se00
相关产品推荐
相关产品推荐

