2010-05-27 2 views
0
from string import Template 
from string import Formatter 
import pickle 
f=open("C:/begpython/text2.txt",'r') 
p='C:/begpython/text2.txt' 
f1=open("C:/begpython/text3.txt",'w') 
m=[] 
i=0 
k='a' 
while k is not '': 
    k=f.readline() 
    mi=k.split(' ') 
    m=m+[mi] 
    i=i+1 

print m[1] 

f1.write(str(m[3])) 
f1.write(str(m[4])) 

x=[] 
j=0 
while j<i: 
    k=j-1 
    l=j+1 
    if j==0 or j==i: 
     j=j+1 
    else: 
     xj=[] 
     xj=xj+[j] 
     xj=xj+[m[j][2]] 
     xj=xj+[m[k][2]] 
     xj=xj+[m[l][2]] 
     xj=xj+[p] 
     x=x+[xj] 
     j=j+1 

f1.write(','.join(x)) 




f.close() 
f1.close() 

Это говорит линии 33, х = г + т [л] [2] имеет ошибку индексного список из диапазонаиндекса: список из диапазона

пожалуйста, помогите заранее спасибо

+2

Пожалуйста, объясните, что вы пытаетесь сделать, и на какой вопрос вы хотите получить ответ. Кроме того, отформатируйте свой код. – vezult

+0

Вы получаете дополнительные очки за то, что выбрали свой код, чтобы сделать нечитаемый код Python. * facepalm * – jathanism

+1

Ugh, возможно, самый уродливый код Python, который я когда-либо видел. Что делаешь? –

ответ

1

Исключение IndexError (индекс списка за пределами допустимого диапазона) означает, что вы попытались получить доступ к массиву с помощью индекса, который выходит за пределы массива. Вы можете увидеть это в действии, используя простой пример, как это:

>>> a = [1, 2, 3] 
>>> a[2] 
3 
>>> a[3] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in ? 
IndexError: list index out of range 

Я не могу точно следовать код, но то, что эта ошибка означает, что либо:

  • l выходит за пределы m или
  • 2 выходит за пределы m[l]
2

Предположим, что я в 10, то на последнем пробеге цикл while j равен 9, теперь у вас есть l = j + 1, поэтому l будет 10, но ваши 10 строк в m индексируются 0..9, поэтому m [l] [2] даст ошибку индекса.

Кроме того, вы код будет выглядеть намного лучше, если бы вы только что добавили элементы в списке на одном дыхании, а именно:

х = х + [у, м [у] [2], м [K] [2], m [l] [2], p]

Пространства - лучший друг в глазах!

+1

+1: Пространства * - лучший друг глаз! – Johnsyweb

Смежные вопросы