tiempo real matrices graficos graficas graficar grafica coordenadas como barras python list-comprehension pylint

real - matplotlib python



¿Por qué a Pylint no le gustan las funciones incorporadas? (3)

Tengo una línea como esta:

filter(lambda x: x == 1, [1, 1, 2])

Pylint está mostrando una advertencia:

W: 3: Used builtin function ''filter''

¿Porqué es eso? ¿Es una lista de comprensión el método recomendado?

Por supuesto que puedo reescribir esto así:

[x for x in [1, 1, 2] if x == 1]

Y no recibo ninguna advertencia, pero me preguntaba si hay un PEP para esto.


¿Porqué es eso? ¿Es una lista de comprensión el método recomendado?

La comprensión de la lista se recomienda en el ejemplo tutorial , que indica

es más conciso y legible.

y por la mayoría de los que responden en la Comprensión de la lista de Python de SO vs. Mapa donde está

  1. más eficiente para usar la comprensión de la lista que filter si está definiendo una lambda cada vez
  2. tal vez más legible (y con una eficiencia similar) para usar filter si la función está predefinida
  3. es necesario usar filter y map si
    • Mapa del map ,
    • map curry, o
    • usa programación funcional

TL; DR: uso de la lista de comprensión en la mayoría de los casos


Me encontré con el mismo problema y no pude entender

por qué la función incorporada `input ''es mala. Yo tengo la intención

para deshabilitarlo:

pylint --bad-functions = "[mapa, filtro, aplicar]" YOUR_FILE_TO_CHECK_HERE

Una vez que te gusta la configuración:

pylint --bad-functions="[map,filter,apply]" --some-other-supercool-settings-of-yours --generate-rcfile > test.rc

Verifique que su configuración esté en el archivo, por ejemplo:

cat test.rc | grep -i YOUR_SETTING_HERE

Después de eso, puedes usar este archivo localmente

pylint --rcfile test.rc --your-other-command-line-args ...

o incluso usarlo como su archivo de configuración predeterminado. Por esto, gentilmente lo remito a

pylint --long-help


Pylint a menudo habla sobre cosas que no debería. Puede deshabilitar la advertencia en un archivo .pylintrc.

Esta página http://pylint-messages.wikidot.com/messages:w0141 indica que el problema es que el filtro y el mapa han sido reemplazados por las listas de comprensión.

Una línea como esta en su archivo pylintrc silenciará la advertencia:

disable=W0141