Python продолжает давать мне «AttributeError: 'str' object has no attribute 'pop'
» на линии Words[Check0n].pop()
.Переменная должна быть int, но AttributeError утверждает, что это str
Изначально я пытался решить эту проблему путем поворота Check
и Check0
в int
с и сравнявшись Checkn
и Check0n
тем.
Так как это не сработало, я проверил, было ли значение Check0n
равным int
, используя print(type(Check0n) is int)
дважды. Оба печатаются True
, поэтому я действительно не понимаю, почему он продолжает давать ту же ошибку, что и если бы Check0n
были строкой, когда это явно не так.
Что я хочу, чтобы программа выполняла проверку «a» внутри списка. Затем он должен проверить «вещь» в следующем месте в списке. Если «вещь» есть, тогда она должна удалить «вещь» из этого места в списке и заменить «а» на прежнем месте «вещью». Если бы вы написали «материал», я бы хотел, чтобы они оставались разделенными в списке как «a», «stuff».
def Sentence_Processing():
Sentence = input("Enter a sentence:")
Sentence_0 = Sentence.replace(".", " .")
Sentence_1 = Sentence_0.replace(",", " ,")
Words = Sentence_1.split()
print(Words)
for Word in Words:
Word0 = str.lower(Word)
if Word0 == "a":
Check = Words.index(Word)
Check0 = Check+1
Checkn = int(Check)
Check0n = int(Check0)
print(type(Check0n) is int)
if Words[Check0n] == "thing":
print(type(Check0n) is int)
Words[Check0n].pop()
Words[Checkn] = "a thing"
print("Did all of it")
print("Passed")
Обратите внимание, что программа для меня большая, чтобы вставить всю вещь.
Слова [Check0n] является строка, строка не имеет метод поп –
Если вы пытаетесь удалить элемент из списка слов можно сделать Words.pop () –
junnytony
@Pawel Kordowski Сообщение об ошибке почти записано это. –