Найти - Пользователи
Полная версия: any...
Начало » Python для новичков » any...
1
lupanton
Добра всем!
Пытаюсь разобраться с any…
Упрощенно так: хочу сравнить элементы одного списка между собой - если все равны хочу получить True, иначе False.
lst = [1, 2, 1]
if any(x for x in lst if x == 1):
print(True)
else:
print(False)


Выдает True. Помогите, люди добрые. Что я не так понимаю и делаю?
Rodegast
any выдаст True если хоть один элемент будет истинен, тебе подойдёт all
lupanton
А вот такое определение может оказать влияние на результат:

from typing import List, Any

Мне нужно функцию сваять типа:

def respons(elem: List[Any]->bool)
***
return

Или тут путаница у меня?

Rodegast
Причём тут твои типы? all и any это Квантор всеобщности и Квантор существования т.е. функции, типы тут вообще не причём.
lupanton
Rodegast
надо определить, все ли элементы массива равны.
Входные: List - формируется автоматически осциллографом и в этом списке 17962 элемента. Если не равны, то снова надо замерять.
Выходные:True или False.
Это часть кода - никакие вводные менять нельзя. в ассертах представлены возможные варианты выходного списка для анализа - никак не могу добиться толку со всеми видами списков - даже этим вот кодом:
 from typing import List, Any
def resp(elements: List[Any]) -> bool:
    d = {}
    d1 = {}
    for x in range(len(list)):
        if list[x] not in d:
            if list[x] not in d1:
                d[list[x]] = x
        else:
            d1[list[x]] = x
            d.pop(list[x])
    if not d:
        print(True)
    else:
        print(False)
if __name__ == '__main__':
    
    assert resp([1, 1, 1]) == True
    assert resp([1, 2, 1]) == False
    assert resp(['a', 'a', 'a']) == True
    assert resp([]) == True
    assert resp([1]) == True

Выдает мне:
 TypeError: object of type 'type' has no len()
Никак не пойму где ошибка?
py.user.next
  
>>> lst = [1, 2, 1]
>>> all(i == lst[0] for i in lst)
False
>>> 
>>> lst = [1, 1, 1]
>>> all(i == lst[0] for i in lst)
True
>>>
lupanton
py.user.next
Спасибо! В задании у меня ерундовина и путаница.
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