Como manter um máximo de 79 caracteres por linha no caso de compreensões de lista do Python?

0

Eu tenho a função que consiste em 1 linha. É algo como:

return [item for item in list if something_very_long and something_else_very_long] == []

Como é mais apropriado separar esta declaração para aderir às diretrizes do PEP-8 para manter um máximo de 79 caracteres por linha ? Não consegui encontrar um exemplo como este na documentação do PEP-8.

    
por user253956 14.03.2014 / 10:14

3 respostas

3

As outras respostas dizem que você deve reescrever sua compreensão da lista para um loop normal. É muito mais fácil do que isso e você pode manter sua compreensão da lista.

Você pode dividir onde quiser, é o mesmo que uma declaração com parênteses.

# Splitting too much just for the sake of example
return [item for item in list if 
        something_very_long and 
        something_else_very_long] == []
    
por Timo 14.03.2014 / 11:13
2

Eu votei para fechar. Isso não é realmente sobre o Ubuntu. Apenas no caso de você precisar de uma resposta rapidamente: não use uma compreensão da lista se ela for muito complexa. Apenas tente.

original_li = [1,2,3,4,5]
new_li = []
for itm in original_li:
     if condition1 and condition2:
         new_li.append(itm)

ou se as condições ainda forem muito longas:

original_li = [1,2,3,4,5]
new_li = []
for itm in original_li:
     if condition1:
         if condition2:
             new_li.append(itm)

Agora você tem a lista que precisa. Você poderia terminar isso em uma função, é claro.

    
por don.joey 14.03.2014 / 10:47
0

É o mesmo que

   var1=[]    
    for item in list:
        if something_very_long and something_else_very_long:
            var1.append(item)
    if var1: return var1
    
por Stormvirux 14.03.2014 / 10:50