если i! = 0 в понимании списка дает синтаксическую ошибку

Этот вопрос очень похож: if / else в понимании списка Python? и Простая синтаксическая ошибка в Python, если в противном случае понимается dict . Но все же я не понимаю, какую ошибку я здесь делаю:

[i if i!=0 for i in range(2)] ^ syntax error 

Мне нужны только записи в списке, которые не равны нулю для разреженности.

3 Solutions collect form web for “если i! = 0 в понимании списка дает синтаксическую ошибку”

Переместите if до конца. Обратитесь к разделу «Документы Python Docs» в «List List» .

 >>> [i for i in range(2) if i!=0] # Or [i for i in range(2) if i] [1] 

Если вы искали условное выражение , вы могли бы сделать что-то вроде @Martijn,

 >>> [i if i!=0 else -1 for i in range(2)] [-1, 1] 

Если вам просто нужны ненулевые объекты, вы можете также filter(...) ваш список.

 >>> filter(None, [1, 2, 0, 0, 4, 5, 6]) [1, 2, 4, 5, 6] 

Предикат if появляется после спецификации for i in range(2) в понимании списка. Вы также можете иметь произвольное число if .

Переключите if i!=0 и for i in range(2) :

 >>> [i for i in range(2) if i!=0] [1] >>> 
Interesting Posts

Хорошие использует значения переменных аргумента переменной?

График многомерного кластера для 2D-графика python

Удаление периодов в конце предложений в python

python: undefined symbol: PyUnicodeUCS2_DecodeUTF8

Flask-Login вызывает TypeError: объект «bool» не может быть вызван при попытке переопределить свойство is_active

Извлечение даты из строки в Python

Скажите scipy.optimize.minimize to fail

Более питонический способ написать этот блок (и исключить: ValueError: элемент последовательности обновления словаря # 0 имеет длину 1, 2 требуется)

Можно ли добавить пару <ключ, значение> в конец словаря в python

Обработка нескольких значений для одного параметра с помощью getopt / optparse?

Как расширить регулярное выражение, чтобы исключить все файлы в папке?

Триплет, сиамский и мягкий макс в тензорном потоке

Python: выведение вывода из subprocess.call с помощью stdout

redis: сбросить счетчик каждый день

Декодирование данных Python base64

Python - лучший язык программирования в мире.