Начнем с того, что не стоит использовать ключевые слова Python, такие как list
, в качестве переменной.
Понимание списка [x for x in list if x < 9]
отфильтровывает элементы меньше 9, но не остановится, когдавстречает 9, вместо этого он будет проходить по всему списку
Пример:
li = [7,8,3,2,4,9,51,8,7]
print([x for x in li if x < 9])
Вывод
[7, 8, 3, 2, 4, 8, 7]
Чтобы достичь того, что вы ищете, вывы хотите цикл for, который прерывается, когда он встречает данный элемент (9 в вашем случае)
li = [7,8,3,2,4,9,51]
res = []
item = 9
#Iterate over the list
for x in li:
#If item is encountered, break the loop
if x == item:
break
#Append item to list
res.append(x)
print(res)
Выходные данные
[7, 8, 3, 2, 4]