Найти - Пользователи
Полная версия: ошибка при делении списка Linst Index out of Range
Начало » Python для новичков » ошибка при делении списка Linst Index out of Range
1 2 3
leona
спасибо ! с наступающим !!!!!

О да, опыт….бы предпочла вторую часть, ту, что про “гений парадоксов друг”:)
но, увы, учиться, учиться….

попробовала с пустым аргументом, но список перестал делиться…
>>> celex = {}
>>> f = open('/home/inna/nltk_data/corpora/diss/celex.txt', 'r')
>>> for line in f:
line = line.strip()
zuordnung = line.split()
if len(zuordnung) !=2:
print zuordnung
continue
celex[zuordnung[0]] = zuordnung[1]


[]
>>> for line in f:
line = line.strip()
zuordnung = line.split()
if len(zuordnung) !=2:
print 'bad str: ' ,zuordnung
continue
celex[zuordnung[0]] = zuordnung[1]


>>> f.close()
>>>
сам файл вроде бы корректный, он для работы с awk изначально предполагался и с этим языком работал.
sp3
1. Вы два раза перебираете f
итератор то уже пустой
2. В вашем коде как вы поверяете что словарь пустой?
print celex
py.user.next
leona
О да, опыт….бы предпочла вторую часть, ту, что про “гений парадоксов друг”smile
но, увы, учиться, учиться….
переписываешь сюда задание в точности и пример содержимого файла (строк десять)
leona
спасибо !


я пытаюсь решить свою собственную задачу, постараюсь менее вязко сформулировать.

мне нужно из списка выбрать глаголы и сохранить их в отдельном файле вместе с их частотами.
выбрать глаголы довольно просто - отфильтровать слова, те, которые оканчиваются на ‘en’, ‘rn’ и начинаются с маленькой буквы.
там, конечно, другие части речи попадутся, но их процент очень мал, отсею вручную.

первые пары из файла celex.txt:
Ae 4
aalen 1
Aal 80
aalglatt 0
Aar 2
Aas 6
Aasgeier 2
ab 2171
ab 2171
Abakus 0
abaendern 16
abaenderlich 0
Abaenderung 17
Abandon 0
abandonnieren 0
abarbeiten 3
abarten 0


С наступающим Новым !)
py.user.next
#!/usr/bin/env python
# -*- encoding: utf-8 -*-

if __name__ == '__main__':

infile = 'celex.txt'
outfile = 'output.txt'

with open(infile) as fin, \
open(outfile, 'w') as fout:
for line in fin:
word, freq = line.split()
if word[0].lower() == word[0] and \
word.endswith(('en', 'rn')):
print >>fout, word, freq
print 'ok'
С наступающим и наступившим
leona
:) спасибо ! с Новым годом!!!!!!!!!!!!!!!!!!!!

попробовала Ваш скрипт, не прошла дальше 4 строчки, пайтон выдает синтаксическую ошибку при переносе строки, выделяет красным символ “,”

IDLE 2.6.5      ==== No Subprocess ====
>>> if __name__ == '__main__':
infile = '/home/inna/nltk_data/corpora/diss/celex.txt'
outfile = 'output1.txt'
with open(infile) as fin, \

SyntaxError: invalid syntax
с руками, наверное, у меня что-то не то. заменила “, \” на “+”, тоже пишет об ошибке….
py.user.next
его надо сохранить в файл script.py и просто запустить
leona
запустила через run, выдал ту же самую синтаксическую ошибку - указывает на запятую после fin….(

а терминал пишет:

@egoist:~$ python script.py
File “script.py”, line 9
with open(infile) as fin, \
^
SyntaxError: invalid syntax

попробовала еще вот так вот, но тоже без успеха:


@egoist:~/python_examples$ ./script.py
File “./script.py”, line 9
with open(infile) as fin, \
^
SyntaxError: invalid syntax
@egoist:~/python_examples$
py.user.next
да, вижу
#!/usr/bin/env python
# -*- encoding: utf-8 -*-

if __name__ == '__main__':

infile = 'celex.txt'
outfile = 'output.txt'

with open(infile) as fin:
with open(outfile, 'w') as fout:
for line in fin:
word, freq = line.split()
if word[0].lower() == word[0] and \
word.endswith(('en', 'rn')):
print >>fout, word, freq
print 'ok'
python 2.6 не может сделать with с двумя open()
leona
спасибо ! запустила Ваш скрипт, но пайтон теперь другую ошибку выдает, связанную с делением списка:

Traceback (most recent call last):
File “/home/inna/nltk_data/corpora/diss/script2.py”, line 12, in <module>
word, freq = line.split()
ValueError: need more than 0 values to unpack

в исходном файле было много информации, которая мне не нужна.
он вот так выглядел:
1\A\563\0\95\1.9777\531\99\1.9956\32\54\1.7324
2\Ae\4\0\1\0\3\1\0\1\2\.301
3\aalen\1\0\0\0\1\0\0\0\0\0

мне нужны только второй и третий “элемент”. я в Exel поделила на столбцы автоматически, убрав “\” и сохранила в txt. может, в этом проблема?

попробовала так: = line.split(“\t”)
выдал ошибку: Traceback (most recent call last):
File “/home/inna/nltk_data/corpora/diss/script2.py”, line 12, in <module>
word, freq = line.split(“\t”)
ValueError: need more than 1 value to unpack

исправила на: =line.split(“ ”)
выдал: Traceback (most recent call last):
File “/home/inna/nltk_data/corpora/diss/script2.py”, line 12, in <module>
word, freq = line.split(“ ”)
ValueError: too many values to unpack

PS: набрала от руки пару слов из списка, ошибок не было, все в порядке. значит траблы с txt файлом.
что делать? буду признательна за совет!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB