моя программа использует findall
функцию из библиотеки re
для суммирования всех чисел в файле:
fh=open(fname)
lst=re.findall('[0-9]+',fh.read())
findall
предположительно возвращает список, верно? так что я должен пройти через него oop следующим образом:
for i in lst :
s=s+int(lst[i])
, но я получаю ошибку трассировки, которая говорит:
s=s+int(lst[i])
TypeError: list indices must be integers or slices, not str
Теперь все работает нормально, если я использую range()
:
for i in range(len(lst))
Я просто не понимаю, почему я получаю этот список ошибок, по умолчанию индексируется целыми числами, верно? может кто-нибудь объяснить мне? спасибо!