Как определить, есть ли хотя бы одно значение меньше 10
Необходим скрипт для проверки значений списка. Не могу сообразить как прописать, что если любое из значений меньше 10, то в консоль выводится однократное Ок.
a=[1.2, 2.4, 2.7, 3.0, 3.1, 7.2]
for i in range(len(a)):
if a[0]>20 or a[i]>10 :
print('No')
break
elif a[i]<10:
continue
print('Ok')
Ответы (4 шт):
Автор решения: Сергей
→ Ссылка
Например, так:
a=[1.2, 2.4, 2.7, 3.0, 3.1, 7.2]
for i in range(len(a)):
if a[0]>20 or a[i]>10 :
print('No')
break
if min(a)<10:
print('Ok')
Общая идея переделки - по максимуму использовать средства языка - они быстрее. Цикл - только там, где нужно. Если можно список сразу обработать - так и делаем.
Автор решения: leonardik
→ Ссылка
такой еще вариант сработал
a=[1.2, 2.4, 2.7, 5.0, 3.1, 7.2]
for i in range(len(a)):
if a[0]>20 or a[i]>10 :
print('No')
break
else:
print('Ok')
Автор решения: Andy Pavlov
→ Ссылка
Решается в одну строку с помощью генератора и next(), получающей первый результат.
Если нашли что-то больше 10, то значит No, иначе Ok
a = [1.2, 2.4, 2.7, 3.0, 3.1, 7.2]
print('No' if next((e for e in a if e > 10), None) else 'Ok')
# Ok
a = [1.2, 20.4, 2.7, 3.0, 3.1, 7.2]
print('No' if next((e for e in a if e > 10), None) else 'Ok')
# No
Автор решения: Qwertiy
→ Ссылка
Только да: tio.run
a = [1.2, 2.4, 2.7, 3.0, 3.1, 7.2]
if any(x < 10 for x in a): print('Ok')
Да или нет: tio.run
a = [1.2, 2.4, 2.7, 3.0, 3.1, 7.2]
print('Yes' if any(x > 10 for x in a) else 'No')