Форум сайта python.su
Подскажите, пожалуйста, как найти числа в списке по условию больше-меньше.
Питон 3.
Пример.
A = [700, 400, 900] a = 500
A = [700, 400, 900] a = 500 for i in A: if A[i] < a: N = i print(N)
A = [700, 400, 900] a = 500 def f(x): return x < i T = filter(f, A) print(T)
Отредактировано Kyrym (Дек. 28, 2016 15:04:50)
Офлайн
>>> a = [100, 500, 1000] >>> filter(lambda x: x < 400, a) [100]
Офлайн
спокойно через for решается, даже в вашем варианте если исправить ошибку в 4-ой строке
A = [700, 400, 900] a = 500 print(*(i for i in A if i < a))
Офлайн
marvellikа какая у меня ошибка в 4-ой строке? я хочу вывести числа меньше 500 как список.
даже в вашем варианте если исправить ошибку в 4-ой строке
A = [700, 400, 900, 250] a = 500 print(*(i for i in A if i < a))
[250, 400]
aa = [100, 500, 1000] print(filter(lambda x: x < 400, aa)) bb = ''.join.filter(lambda x: x < 400, aa) print(bb)
Офлайн
> честно говоря, я получаю ответ вида: <filter object at 0x035732F0>
Это значит что у тебя третий питон. Там фильтр возвращает генератор и его надо в ручную преобразовать в словарь:
list(filter(lambda x: x < 400, a))
bb = ''.join(map(str, filter(lambda x: x < 400, aa)))
Отредактировано Rodegast (Дек. 28, 2016 15:31:57)
Офлайн
Rodegast, теперь всё чётко. Спасибо!
Офлайн
Имхо мои 5 копеек
Если человек задает вопрос такого уровня - то было бы добрее ему отвечать в более примитивном виде
У мало мальски опытного программиста данная строка
bb = ''.join(map(str, filter(lambda x: x < 400, aa)))
# -*- coding: utf-8 -*- # Список чисел spisok = [700, 400, 900] # Число для сравнения param = 500 # Так как чисел может быть несколько создадим переменные (списки) # для хранения результатов bolshe = [] menshe = [] # Проходимся по списку for chislo in spisok: # Если член списка больше числа для сравнения if chislo > param: # добавляем его в переменную больше bolshe.append(chislo) # иначе else: # добавляем его в переменную меньше menshe.append(chislo) print('Число для сравнения: ', param) print('Числа больше: ', bolshe) print('Числа меньше: ', menshe)
Отредактировано ZerG (Дек. 28, 2016 15:58:25)
Офлайн
Kyrymа то что в цикле вы перебираете элементы списка
а какая у меня ошибка в 4-ой строке?
for i in A:
if A[i] < a:
A = [700, 400, 900] a = 500 for i in range(len(A)): if A[i] < a: N = i print(N)
Отредактировано marvellik (Дек. 28, 2016 18:10:27)
Офлайн
ZerG, отличный пример, огромное спасибо!
marvellikРешением данной программы являются индексы, да и форма вывода не та. Теперь я понял, как надо было написать код:
A = a = 500 for i in range(len(A)): if A < a: N = i print(N)
A = [700, 400, 900, 250] a = 500 N=[] for i in A: if i < a: N.append(i) print(N)
[400, 250]
Офлайн
Не за что.
Офлайн