def find_duplicates(inputList, occurrences, errorMessage):
'''find_duplicates(inputList, occurrences) -> Finds and returns all duplicates in list l
which occur at least 'occurrences' times
If none are found then errorMessage is returned'''
curr = 0
prev = 0
occurrencesFound = 0
duplesFound = []
inputList = sorted(inputList)
print(inputList)
for i in range(len(inputList)):
prev = curr
curr = inputList[i]
occurrencesFound[curr] = 0
if curr == prev and duplesFound.count(curr) == 0:
occurrencesFound[curr] += 1
if occurrencesFound[curr] == occurrences:
duplesFound.append(curr)
occurrencesFound = 0
if duplesFound == []:
duplesFound = errorMessage
return duplesFound
Это код Python 3, который я написал, чтобы вернуть все значения в списке, которые встречаются «вхождения», и отображать выбранное сообщение об ошибке, если их не было найдено , Тем не менее, это то, что я получаю:ТипError: объект 'int' не поддерживает назначение элемента 7
Traceback (most recent call last):
File "C:\Python\Python Homework.py", line 68, in <module>
print(find_trivial_taxicab_numbers(3))
File "C:\Python\Python Homework.py", line 56, in find_trivial_taxicab_numbers
while find_duplicates(intsFound, (n), "Error") == "Error":
File "C:\Python\Python Homework.py", line 32, in find_duplicates
occurrencesFound[curr] = 0
TypeError: 'int' object does not support item assignment
я могу сказать, что несколько ошибка, но я не уверен. То, что я пытаюсь сделать, состоит в том, чтобы иметь отдельное количество вхождений для каждого другого значения в списке. Например, если у меня был список [2,2,5,7,7,7,7,8,8,8], я бы хотел, чтобы событияFound [2] заканчивались как 2 ,хожденияFound [5] заканчивались как 1 ,хожденияFound [7] заканчиваются как 4 и так далее.
Таким образом, код будет проверять, имели ли место какие-либо номера, по крайней мере, столько раз, сколько пользователь запросил, а затем вернуть все числа, которые сделали. Метод, который я использовал, не работал отлично, хотя ...
Что я хотел бы знать, почему это ошибка и как я могу ее исправить. Вместо этого я попытался выполнить записиFound (curr), и это не сработало. Ответ был дан в "TypeError: 'function' object does not support item assignment". Есть идеи?
Я думаю, что вы хотите сделать 'occurrencesFound = []', а не 'occurrencesFound = 0'.Или, может быть, даже 'occencesFound = {}', если вам нужен словарь. – idjaw
Почему вы устанавливаете 'occencesFound' в int? – user2357112
'entryencesFound' - значение int, поэтому 'хожденияFound [curr]' не имеет смысла –