我有一个Python列表,如下所示:
onlyText3 = [['Here', 'is', 'some', 'text'], ['Here', 'is', 'some', 'more', 'text']]
我需要遍历该列表的每个元素
我正在使用Pyenchant和word-compound-splitter。
这是我的代码:
import enchant
import splitter
dictionary = enchant.dict("en_US")
for a in range(len(onlyText3)-1):
for b in range(len(onlyText3[a])-1):
if dictionary.check(onlyText3[a][b]):
pass
elif splitter.split(onlyText3[a][b]):
for c in range(len(splitter.split(onlyText3[a][b]))-1):
onlyText3[a].insert(b+c, splitter.split(onlyText3[a][b])[c])
else:
if dictionary.suggest(onlyText3[a][b]):
onlyText3[a][b] = dictionary.suggest(onlyText3[a][b])[0]
但是,这会产生索引错误:
onlyText3[a].insert(b+c, splitter1.split(onlyText3[a][b])[c])
IndexError: list index out of range
我有没有想过的事情?有没有更简单的方法来做到这一点? 我想不出更好的方法,因为我确实需要使用索引访问每个元素,因为我需要索引以插入分割复合词所产生的单词。
答案 0 :(得分:0)
insert
不会自动为您扩展列表。尝试在断开的行之前执行onlyText3[a].extend([None] * (b + c - len(onlyText3[a])))
。