I have a list of nested key values from a large file:
mainLs = [{'99999': {'popDensity': 0.0, 'housingDensity': 1.8062141714841409e-07}, '53000': {'popDensity': None, 'housingDensity': None}, '56938': {'popDensity': None, 'housingDensity': None}, '22594': {'popDensity': 0.003762399188257728, 'housingDensity': 0.002336601878903448}, '49194': {'popDensity': 0.0, 'housingDensity': 0.0005159765063886844}, '54232': {'popDensity': 0.0, 'housingDensity': 0.00046439265846193704}, '06000': {'popDensity': None, 'housingDensity': None}, '00562': {'popDensity': 0.0007453821299310868, 'housingDensity': 0.00035915666845218}, '68084': {'popDensity': 0.0, 'housingDensity': 0.0}}]
I want to return a user-friendly string to note the place with a highest popDensity.
def find_densest(k, lst):
placeId = max(lst, key =lambda place: lst[place][k] if place[k])
ans = "Densest placeFIPS is " + str(placeId) + " for " + k
print(ans)
# Expected Output
find_densest('popDensity', mainLs)
>>> "The densest place ID is 22594 with the popDensity of 0.003762399188257728"
I need to retain multiple instances of the same place as key. Is there a way to do this?