Найти - Пользователи
Полная версия: Правильно поставить условие
Начало » Центр помощи » Правильно поставить условие
1 2
osipbananov
Здравствуйте, не могу правильно поставить условие в задаче.
Мне нужно подсчитать количество объектов в списке, делаю так:
spisok = [1, False, True, 1, 10,  4]
count = 0
for i in spisok:
    if i is spisok[i]:
        count += 1
print(count) 
ответ должен быть == 5
Знаю что условие поставлено неверно.
Выводит ошибку:
list indices must be integers or slices, not str
Помогите пожалуйста правильно поставить условие
FishHook
osipbananov
Это все что вы мне можете сказать, а по делу объясните?
osipbananov
osipbananov
Это все что вы мне можете сказать, а по делу объясните?
Что никто не объяснит?
Vlad_Ki
Чувак, что бы ты понимал почему тебе ни помогают - тут написан ужасный бред. И если тебе лень даже перевести то, что тебе подсказывает компилятор, то какой смысл тебе помогать? тем более ты скорее всего не гуглил. Если бы гуглил, то не написал бы такую чушь.
osipbananov
Vlad_Ki
list indices must be integers or slices, not str
Ok, спасибо и на этом
osipbananov
Попробую объяснить по другому.
Есть задача:
Реализуйте программу, которая будет вычислять количество различных объектов в списке.
Два объекта a и b считаются различными, если a is b равно False.

Программе доступна переменная с названием objects, которая ссылается на список, содержащий не более 100 объектов. Выведите количество различных объектов в этом списке.
Решил при помощи создания второго списка вот так:
objects = [1, 0, 50, 11, "Чтото", True, False, 1, 0]
spisok2 = []
ans = 0
for obj in range(len(objects)):
if objects[obj] not in spisok2:
spisok2.append(objects[obj])
ans += 1
print(ans)
ответ получается 5
а правильный ответ, наверно 7
Нужно решить эту задачу при помощи is, т.к. интерпретатор похоже считает что False это 0, а True это 1.
Не знаю бред я написал или чушь, но хочется выяснить. Помогите кому не трудно
doza_and
osipbananov
количество различных объектов
Это совсем не то что вы просили ранее.
Если вас просят использовать is то оператор in тут вообще ни при чем.

Надо попарно сравнивать объекты при помощи is. одним циклом тут никак не обойдешься. Нужно писать двойной цикл. Ну например посчитайте все те объекты для которых a_i is a_j встречается ровно 1 раз.
osipbananov
doza_and
Спасибо завтра попробую как вы написали
Lestoroer
objects = [1, 0, 50, 11, "Чтото", True, False, 0, 1,1, 50,1,1,1,0,0,0,
           2,2,2,2,2,2,2,2,2,2,2,2,2,True]
x = len(objects)
y = 0
j = 0
n = 0
while y < x:
    n = y+1
    while n < x:
        if objects[y] is objects[n]:
            j += 1
            break
        n = n+1
    y = y+1
print(x-j)
Сложная задачка, я всю голову поломал. У меня уже поздно и мне сложно думать, а также оценить правильность кода, завтра отпишитесь работает ли код.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB