What is the pep8 compliant way to do deep dictionary access?
dct = {
'long_key_name_one': {
'long_key_name_two': {
'long_key_name_three': {
'long_key_name_four': {
'long_key_name_five': 1
}
}
}
}
}
E501 line too long (118 > 80 characters)
print dct['long_key_name_one']['long_key_name_two']['long_key_name_three']['long_key_name_four']['long_key_name_five']
E211 whitespace before '['
print dct['long_key_name_one']['long_key_name_two']\
['long_key_name_three']['long_key_name_four']['long_key_name_five']
E124 closing bracket does not match visual indentation
print dct['long_key_name_one']['long_key_name_two'
]['long_key_name_three']['long_key_name_four']['long_key_name_five']
This passes pep8 but seems less than ideal
print dct['long_key_name_one']['long_key_name_two'][
'long_key_name_three'
]['long_key_name_four']['long_key_name_five']
Is there a way to break up the line so that it looks nice and is pep8 compliant?
Perhaps not the best way, but it works:
a = dct['long_key_name_one']['long_key_name_two']
b = a['long_key_name_three']['long_key_name_four']['long_key_name_five']
But this also works, which is the suggested method:
print (dct['long_key_name_one']['long_key_name_two']
['long_key_name_three']['long_key_name_four']
['long_key_name_five'])
If you use it inside a function (and you could use print() as a function since 2.7 afaik)
You could just use implicit concatenation within a parentheses
print(dct['long_key_name_one']
['long_key_name_two']
['long_key_name_three']
['long_key_name_four']
['long_key_name_five'])
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With