我一直在使用Python 3.7.1运行以下代码或Jupyter Notebook 5.7.4。那里工作正常。当我尝试使用python 3.5.2在HPC上运行相同的代码时,我不断收到以下错误。 如果array [i-1] == array [i]: IndexError:列表索引超出范围
import vcf
v = vcf.Reader(filename='/scratch/global/kkdesi01/Equine/animals/Chr/Chr11_possibleIntrogressionTargets.vcf')
f = open('/scratch/global/kkdesi01/Equine/animals/Chr/position11.txt', 'w+')
for record in v:
f.write(str(record.POS))
f.write('\n')
f.close()
with open('/scratch/global/kkdesi01/Equine/animals/Chr/position11.txt', 'r') as ins:
array = []
for line in ins:
array.append(line)
print(len(array))
f = open('/scratch/global/kkdesi01/Equine/animals/Chr/filter11.txt', 'w+')
for i in range (1, len(array)):
val1 = int(array [i-1])
val2 = int(array [i])
diff = val2-val1
if diff < 10:
f.write (str(val1))
f.write ('\n')
f.write (str(val2))
f.write ('\n')
f.close()
with open('/scratch/global/kkdesi01/Equine/animals/Chr/filter11.txt', 'r') as ins:
array = []
for line in ins:
array.append(line)
len(array)
for i in range(1, len(array)):
if array[i-1] == array[i]:
del array[i]
错误 如果array [i-1] == array [i]: IndexError:列表索引超出范围
我需要帮助来了解需要在代码中进行哪些更改
答案 0 :(得分:0)
请参阅下面的问题。
您可以在迭代过程中修改数组的长度。
用户set以删除重复项。
array = [2, 3, 4, 4, 4]
for i in range(1, len(array)):
if array[i - 1] == array[i]:
print('Remove entry at offset {}'.format(i))
del array[i]
输出
Remove entry at offset 3
if array[i - 1] == array[i]:
IndexError: list index out of range