Строчные элементы словаря в списке Python - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь прописать все ключи в словаре, которые находятся в списке. На самом деле у меня есть код, который печатает строчный вывод, который я хочу внутри цикла for. Я использую словарь в нижнем регистре, но я не уверен, как добавить измененные значения в мой список.

amdardict = [{'1031': 98, '1032': 1, '33007': 70, 'AIRCRAFT_FLIGHT_NUMBER': 'CNFNXQ', 'DAY': 5, 'HEIGHT_OR_ALTITUDE': 1490.0, 'HOUR': 0, 'LATITUDE': 39.71, 'LONGITUDE': -41.79, 'MINUTE': 0, 'MONTH': 10, 'PHASE_OF_AIRCRAFT_FLIGHT': 5, 'TEMPERATURE_DRY_BULB_TEMPERATURE': 289.0, 'WIND_DIRECTION': 219, 'WIND_SPEED': 3.0, 'YEAR': 2019}
{'12101': 248.75, '4006': 55, '7010': 6135, '8009': 3, 'aircraft_flight_number': '????????', 'aircraft_registration_number_or_other_identification': 'AU0155', 'aircraft_tail_number': '??????', 'day': 5, 'destination_airport': '???', 'hour': 0, 'latitude': -34.3166, 'longitude': 151.9333, 'minute': 8, 'month': 10, 'observation_sequence_number': 64, 'origination_airport': '???', 'wind_direction': 208, 'wind_speed': 23.0, 'year': 2019}
]

for d in amdardict: print(dict((k.lower(), v) for k, v in d.items()))

Ответы [ 2 ]

2 голосов
/ 01 ноября 2019

Зачем изменять исходный список? Можете ли вы создать новый пустой список и немного изменить свой код, чтобы добавить его в новый список вместо печати:

new_list = []
for d in amdardict: 
    new_list.append(dict((k.lower(), v)     for k, v in d.items()))
0 голосов
/ 02 ноября 2019

Чтобы изменить ключи на месте, вы можете использовать метод dict.pop .

>>> # Copy the list in case we make a mistake
>>> import copy
>>> backup = copy.deepcopy(amdardict)
>>> for d in amdardict:
...     # <ake a list of keys() because we can't loop over keys()
...     # and change keys simultaneously
...     for k in list(d.keys()):
...         if not k.islower():
                # pop removes the key from the dict and returns the value
...             d[k.lower()] = d.pop(k) 
... 
>>> amdardict
[{'aircraft_flight_number': 'CNFNXQ', 'day': 5, 'height_or_altitude': 1490.0, 'temperature_dry_bulb_temperature': 289.0, 'wind_direction': 219, 'wind_speed': 3.0, 'year': 2019, 'hour': 0, 'latitude': 39.71, 'longitude': -41.79, 'minute': 0, 'month': 10, 'phase_of_aircraft_flight': 5, '1031': 98, '1032': 1, '33007': 70}, {'aircraft_flight_number': '????????', 'aircraft_registration_number_or_other_identification': 'AU0155', 'aircraft_tail_number': '??????', 'day': 5, 'destination_airport': '???', 'hour': 0, 'latitude': -34.3166, 'longitude': 151.9333, 'minute': 8, 'month': 10, 'observation_sequence_number': 64, 'origination_airport': '???', 'wind_direction': 208, 'wind_speed': 23.0, 'year': 2019, '12101': 248.75, '4006': 55, '7010': 6135, '8009': 3}]
...