我要做的是从一个包含数字的.txt文件中读取,然后从该列表中将2个数字交换到列表中的不同位置(索引(。据我所知,问题是列表被附加,我的索引不再正确。如何修复此问题,这样我就不会出现"列表索引超出范围"错误。
作业任务:您在该作业中的工作是创建一个简单的数字数据集。从外部文件中收集数据,然后运行我们所研究的排序策略,即交换
open_list = open("my_list.txt")
num_list1 = []
for line in open("my_list.txt"):
line = line.strip()
num_list1.append(line)
print(num_list1) # this is printing my list perfect
# ['15,57,14,33,72,79,26,56,42,40'] is what
# prints, which is what im looking for
temp = num_list1[0] # this is where im running into issues
num_list1[0] = num_list1[2]
num_list1[2] = temp
print(num_list1)
您需要根据空间进行拆分。使用split((而不是strip((。strip((方法返回一个删除了前导和尾随字符的字符串副本(基于传递的字符串参数(。而split((:将字符串拆分为一个列表,其中每个单词都是一个列表项。
open_list=打开("my_list.txt"(
num_list1 = []
for line in open("my_list.txt"):
line = line.split()
num_list1.append(line)
print(num_list1) # this is printing my list perfect
# ['15,57,14,33,72,79,26,56,42,40'] is what
# prints, which is what im looking for
temp = num_list1[0] # this is where im running into issues
num_list1[0] = num_list1[2]
num_list1[2] = temp
print(num_list1)
整行存储在两个引号之间的位置[0]。这就是为什么你在[2]的索引之外。您可以通过打印num_list1[2]来测试这一点。
print num_list1[2]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-11-8965836976ae> in <module>()
10 #num_list1[2] = temp
11 print(num_list1)
---> 12 print num_list1[2]
IndexError: list index out of range