Мне дают текстовый файл месяцев, которые я открываю и заполняю в виде списка или набора. Мне нужно перебрать список и удалить все месяцы, в которых есть буква «r» или «R». Я попробовал это, используя и наборы и списки, но продолжаю получать RuntimeError. Вот мой код для использования набора:
monthList = {}
def main():
monthList = fillList()
print(monthList)
removeRMonths(monthList)
def fillList():
infile = open("SomeMonths.txt")
monthList = {line.rstrip() for line in infile}
return monthList
def removeRMonths(monthList):
for month in monthList:
for ch in month:
if ch == "r" or ch == "R":
monthList.remove(month)
print(monthList)
main()
Я получаю ошибку:
Traceback (most recent call last):
File "/Users/hwang/Desktop/Week7.py", line 115, in <module>
main()
File "/Users/hwang/Desktop/Week7.py", line 99, in main
removeRMonths(monthList)
File "/Users/hwang/Desktop/Week7.py", line 107, in removeRMonths
for month in monthList:
RuntimeError: Set changed size during iteration
>>>
Это мой код пытается использовать список:
monthList = ()
def main():
monthList = fillList()
print(monthList)
removeRMonths(monthList)
def fillList():
infile = open("SomeMonths.txt")
monthList = (line.rstrip() for line in infile)
return monthList
def removeRMonths(monthList):
for month in monthList:
for ch in month:
if ch == "r" or ch == "R":
monthList.remove(month)
else:
continue
print(monthList)
main()
Моя ошибка:
Traceback (most recent call last):
File "/Users/hwang/Desktop/Week7.py", line 117, in <module>
main()
File "/Users/hwang/Desktop/Week7.py", line 99, in main
removeRMonths(monthList)
File "/Users/hwang/Desktop/Week7.py", line 110, in removeRMonths
monthList.remove(month)
AttributeError: 'generator' object has no attribute 'remove'
В чем причина этих ошибок? Я пытался погуглить каждое сообщение об ошибке, но я не мог найти ответ, который я могу понять. Я новичок, поэтому я был бы признателен за ответ, который легко понять. Заранее спасибо!