¿Cuál es la forma compatible con pep8 de hacer un acceso profundo al diccionario?
dct = { 'long_key_name_one': { 'long_key_name_two': { 'long_key_name_three': { 'long_key_name_four': { 'long_key_name_five': 1 } } } } }
E501 línea demasiado larga (118> 80 caracteres)
print dct['long_key_name_one']['long_key_name_two']['long_key_name_three']['long_key_name_four']['long_key_name_five']
E211 espacios en blanco antes de ‘[‘
print dct['long_key_name_one']['long_key_name_two']\ ['long_key_name_three']['long_key_name_four']['long_key_name_five']
El soporte de cierre E124 no coincide con la sangría visual
print dct['long_key_name_one']['long_key_name_two' ]['long_key_name_three']['long_key_name_four']['long_key_name_five']
Esto pasa pep8 pero parece menos que ideal.
print dct['long_key_name_one']['long_key_name_two'][ 'long_key_name_three' ]['long_key_name_four']['long_key_name_five']
¿Hay una manera de romper la línea para que se vea bien y sea compatible con pep8?
Quizás no sea la mejor manera, pero funciona:
a = dct['long_key_name_one']['long_key_name_two'] b = a['long_key_name_three']['long_key_name_four']['long_key_name_five']
Pero esto también funciona, que es el método sugerido:
print (dct['long_key_name_one']['long_key_name_two'] ['long_key_name_three']['long_key_name_four'] ['long_key_name_five'])
Si lo usa dentro de una función (y podría usar print () como una función desde 2.7 afaik)
Puedes usar concatenación implícita entre paréntesis
print(dct['long_key_name_one'] ['long_key_name_two'] ['long_key_name_three'] ['long_key_name_four'] ['long_key_name_five'])