Уведомления

Группа в Telegram: @pythonsu

#1 Март 15, 2018 16:31:04

veirant
Зарегистрирован: 2018-03-15
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

TypeError: 'int' object is not subscriptable

a = input().split()
i = 0
j =
while i != len(a):
j = j.append(i)
i = i + 1.rfind()
print (j)
Программа, теоретически должна сортировать список по возрастанию и удалять повторяющаяся элементы в нём, но по какой-то необъяснимой для меня причине выдает ошибку. (TypeError: ‘int’ object is not subscriptable) В принципе знаком с языком недолго, поэтому такие осечки для меня свойственны. Пожалуйста, опишите, в чем может быть проблема и предоставте аналог этого кода, который вы считаете более эффективным. ( Учитывая способности новичка, разумеется) Заранее Спасибо.

Отредактировано veirant (Март 15, 2018 16:40:26)

Офлайн

#2 Март 15, 2018 18:55:47

KasFun
Зарегистрирован: 2018-03-10
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

TypeError: 'int' object is not subscriptable

 a = input().split()
i = 0
j = 1
while i != len(a):
    j = j.append(i)
    i = i + 1.rfind()
    print (j)

вот так форматировать код нужно
в панели форматирования текста, рядом со смайликом улыбающимся - есть “вставить код Python”

Отредактировано KasFun (Март 15, 2018 18:56:25)

Офлайн

#3 Март 15, 2018 18:58:09

KasFun
Зарегистрирован: 2018-03-10
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

TypeError: 'int' object is not subscriptable

 a = input().split()
i = 0
j = 1
while i != len(a):
    j = j.append(i)
    i = i + j.rfind() +1
    print (j)

вот так без ошибок вроде

Офлайн

#4 Март 15, 2018 18:58:28

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

TypeError: 'int' object is not subscriptable

KasFun
ну и что вы вставили? у него в j явно list



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Март 15, 2018 19:50:52

veirant
Зарегистрирован: 2018-03-15
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

TypeError: 'int' object is not subscriptable


Вы не совсем поняли в чем задача. В первую очередь, j - это список в который мы добавляем значения. Код не выделяется, даже после вашего пресловутого форматирования. Я знаю, что это исключительно моя ненаходчивость, но не возьмем во внимание. Вот аналог. Правда пока с a ндроида. https://drive.google.com/file/d/15yiCSoUn7JLRYwvbOMjAzaIUHaQaUUTi/view?usp=drivesdk

Отредактировано veirant (Март 15, 2018 19:59:27)

Офлайн

#6 Март 20, 2018 02:32:41

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

TypeError: 'int' object is not subscriptable

veirant
 1.rfind()
что это такое?
 string.rfind(str, beg=0 end=len(string))
что вы не понимаете ?

Отредактировано papuas (Март 20, 2018 02:36:10)

Офлайн

#7 Март 20, 2018 09:46:06

oleg_panasyuk
Зарегистрирован: 2018-03-20
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

TypeError: 'int' object is not subscriptable

Вот ваша программа если я правильно понял условия.

 a = input('Введите элементы списка через пробел: ').split(' ')
j = []
i = None
print(a)
while a:
	i = a.pop(0)
	if i in a:
		print('Элемент {} повторяется.'.format(i))
	else:
		j.append(i)
		print('Элемент {} добавлен в список.'.format(i))
else:
	j.sort()
	print(j)

Офлайн

#8 Март 20, 2018 15:39:22

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

TypeError: 'int' object is not subscriptable

KasFun
вот так без ошибок вроде
вы о чем?
первая ошибка j это обьект int поэтому j.append(i) сразу даст ошибку но даже если это исправить то вторая
j.rfind() где rfind это метод строк и требует еще параметр в скобках и к списку не применим ну и главное этот код и близко не выполняет поставленную задачу
а вообще это решение в две строки (можно в одну)
 a = input('Введите элементы списка через пробел: ').split(' ')
print(list(sorted(set(a))))
или примерно так ( код не оптимальный но для понятия пойдет)

 a = input('Введите элементы списка через пробел: ').split(' ')
print(a)
result = []
# создаем новый список без повторов -------------------------
for elem in a:
    if elem not in result:
        result .append(elem)
print(result )
#-----------------------------------------------------------------------------------
# сортируем новый список (result.sort()) 
n = 1
while n < len(result):
   for i in range(len(result) - n):
       if result[i] > result[i + 1]:
           result[i], result[i + 1] = result[i + 1], result[i]
   n += 1
print(result)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version