Фильтровать список по условию в Python - PullRequest
0 голосов
/ 20 апреля 2020

мне нужно вычислить, сколько чисел из строки получило значение, большее или равное 25 и меньшее или равное 50

numbers = [25, 24, 26, 45, 25, 23, 50, 51]

#  'count' should be 5 
count = 0
# I need to filter all numbers and only numbers what are higher than 25 can stay 

numbers = [25, 24, 26, 45, 25, 23, 50, 51]

#  'filtered' should be equal to [26, 45, 50, 51]
filtered = []

Ответы [ 4 ]

3 голосов
/ 20 апреля 2020
numbers = [25, 24, 26, 45, 25, 23, 50, 51]
count = len(numbers)
filtered = [num for num in numbers if 25 < num <= 50]
count -= len(filtered)
2 голосов
/ 20 апреля 2020

Мне нужно отфильтровать все числа, и могут остаться только числа, превышающие 25

Вы можете использовать встроенную функцию filter:

numbers = [25, 24, 26, 45, 25, 23, 50, 51]
filtred = list(filter(lambda x : x > 25, numbers))
# [26, 45, 50, 51]

сколько чисел из строки получило значение выше или равное 25 и ниже или равное 50

Вы можете использовать встроенную функцию sum:

count = sum(1 for e in numbers if e >= 25 and e<= 50)
# 5
1 голос
/ 20 апреля 2020

Это должно помочь

numbers = [25, 24, 26, 45, 25, 23, 50, 51]
count=0
f=[]
for i in numbers:
    if i>=25 and i<=50:
        f.append(i)
        count+=1
print(f)
0 голосов
/ 20 апреля 2020

Простой способ сделать это - создать пустой список, выполнить итерацию по текущему списку и добавить все соответствующие элементы в новый список, например, так:

numbers = [25, 24, 26, 45, 25, 23, 50, 51]
new_list =[]

for i in numbers:
    if i>=25 and i<=50:
        new_list.append(i)

print(new_list)

...