2015-11-18 2 views
0
def PlayEasy(): 
    list = [] 
    filename = 'words.txt' 
    with open(filename) as f: 
     content = f.readlines() 
    list.append(content) 
    print(list) 
    print(list[0] + list[1] + list[2]) 
    print(list[3] + list[4] + list[5]) 
    print(list[6] + list[7] + list[8]) 

Try, чтобы бежать, но получают сообщение об ошибке:Traceback: список индексов вне диапазона

Traceback (most recent call last): 
    File "<pyshell#7>", line 1, in <module> 
    PlayEasy() 
    File "/home/bourne-grammar.lincs.sch.uk/99dj12/Documents/Ca2/2016-DJ-Traditional/CA2/Code.py", line 24, in PlayEasy 
    print(list[1] + list[1] + list[2]) 
IndexError: list index out of range 

Я пытаюсь распечатать все 9 элементов списка в сетке 3x3.

+0

Я думаю, что вы имеете в виду '' list.extend'', а не '' list.append''. –

+1

также ... не использовать 'list' в качестве имени переменной,' list' - это встроенный тип, который вы переписываете. –

+0

Aos отмечает, что сообщение об ошибке не соответствует никакому коду, у вас нет строка с надписью 'print (list [1] + list [1] + list [2])'. Быть конкретной! Он будет окупиться в долгосрочной перспективе. – Torxed

ответ

1

В вашем списке имеется только один элемент - список строк из readline. Вы должны использовать extend() вместо append().

Еще несколько нот:

  • Я не понимаю, зачем вам это нужно list переменной. Контент уже есть список.

  • list - ключевое слово, поэтому это нехорошее имя переменной.

+0

Спасибо, удалили список и просто использовали контент. Кажется, сейчас работает :) –

+0

Пожалуйста, отметьте это как ответ тогда :) –

+0

Просто дождаться, нужно подождать 2 минуты: ') –

0

Я думаю, content уже есть список. Таким образом, вы можете print(content).

0

Содержимое уже перечислило необходимость добавления в новый список.

Но чтобы избежать новой строки объявить new_list как ниже

new_list = []

для line_data содержания: new_list.append (line_data.strip())

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