<p>我是Python(以及一般编程)方面的新手。在</p>
<p>我应该做一个python程序,打开两个随机数的文件,然后创建一个新文件,其中的数字从最低到最高排序。在</p>
<p>所以我做了这个代码,用两个for循环遍历所有的数字,搜索最低的,非常基本的东西,然后存储数字和它的位置,附加到一个Lmix列表中,这个列表将保存在最后的文件中,并存储数字的位置,将其从列表中删除,这样就不会再找到它了。在</p>
<p>变量是葡萄牙语,但我在评论中翻译了它们,其余的都是不言而喻的。在</p>
<pre><code>arq1 = open("nums1.txt","r")
arq2 = open("nums2.txt","r")
arqmix = open("numsord.txt","w")
L1 = arq1.readlines()
L2 = arq2.readlines()
Lmix = []
L1 = list(map(int,L1)) # converts lists into int
L2 = list(map(int,L2))
cont = 0
menor = L1[0] # "Menor" is the variable that stores the lowest number it finds
menorpos = 0 # "Menorpos" is the position of that variable in the list, so it can delete later
listdec = 0 # "listdec" just stores which list the number was from to delete.
while cont != (len(L1)+len(L2)):
# while loops that finds the lowest number, stores the number and position, <a href="https://www.cnpython.com/list/append" class="inner-link">append</a>s to the Lmix and deletes from the list so it won't be found on next iteration
n = 0
for n,x in enumarate(L1):
m = 0
for m,y in enumarate(L2):
if x<menor:
menor = x
menorpos = n
listdec = 0
elif y<menor:
menor = y
menorpos = m
listdec = 1
m += 1
n += 1
Lmix.append(menor)
if listdec == 0:
del L1[menorpos]
elif listdec == 1:
del L2[menorpos]
cont += 1
for x in Lmix:
arqmix.write("%d\n"%x)
arq1.close()
arq2.close()
arqmix.close()
</code></pre>
<p>但每次我运行它时,都会出现以下错误:</p>
<p>回溯(最近一次呼叫):
文件“C:/Users/Danzmann Notebook/PycharmProjects/untitled/aula18.py”,第41行,英寸
L2级[美诺波斯]
索引器错误:列表分配索引超出范围</p>
<p>我知道这意味着什么,但我就是不明白为什么会这样,我该怎么解决它。在</p>
<p>任何帮助都将不胜感激。在</p>
<p>提前谢谢,很抱歉有语法错误,英语不是我的母语。在</p>