У меня есть строка, в которую вводятся переменные из нескольких списков, и я хочу, чтобы она избегала возникающей ошибки StopIteration
, чтобы она могла перейти на следующую строку. На данный момент я использую функцию прерывания, это позволяет избежать StopIteration
, но дает мне только первый элемент в списке и оставляет после него пустую строку, если я должен был распечатать его.
Вот две из моих итераций, у которых такая же проблема.
def compose_line5(self, synset_offset, pointer_list):
self.line5 = ''''''
for item in pointer_list:
self.line5 += '''http://www.example.org/lexicon#'''+synset_offset+''' http://www.monnetproject.eu/lemon#has_ptr '''+pointer_list.next()+'''\n'''
break
return self.line5
def compose_line6(self, pointer_list, synset_list):
self.line6 = ''''''
for item in synset_list:
self.line6 += '''http://www.example.org/lexicon#'''+pointer_list.next()+''' http://www.monnetproject.eu/lemon#pos '''+synset_list.next()+'''\n'''
break
return self.line6
Это ошибка, которую я получаю без перерыва:
Traceback (most recent call last):
File "wordnet.py", line 225, in <module>
wordnet.line_for_loop(my_file)
File "wordnet.py", line 62, in line_for_loop
self.compose_line5(self.synset_offset, self.pointer_list)
File "wordnet.py", line 186, in compose_line5
self.line5 += '''http://www.example.org/lexicon#'''+self.synset_offset+''' http://www.monnetproject.eu/lemon#has_ptr '''+self.pointer_list.next()+'''\n'''
StopIteration
Есть ли быстрое решение этой проблемы или мне нужно перехватывать исключения для каждого метода, в котором я использую iter ()?
'http://www.example.org/lexicon#{} http://www.monnetproject.eu/lemon#has_ptr{}\n'.format(synset_offset, pointer_list.next())
. - person Martijn Pieters   schedule 26.06.2013