如何交换从列表.txt文件中读取的数字?错误"list index out of range"



我要做的是从一个包含数字的.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

最新更新