Переход по списку словарей в словаре - PullRequest
0 голосов
/ 19 июня 2020

Я новичок в python, и у меня возникли проблемы с созданием al oop для моего словаря, который содержит список словарей. Я был бы признателен за помощь!

mylist = {'ID_01': [{'blood type': 'A',
                     'Age': '15',
                     'eye colour': 'Green',
                     'Location': 'Toronto',
                     'Initial Score': '30',
                     'Final Score': '50'},
                    {'blood type': 'B',
                     'Age': '20',
                     'eye colour': 'Green',
                     'Location': 'Tokyo',
                     'Initial Score': '50',
                     'Final Score': '80'}],
          'ID_02': [{'blood type': 'C',
                     'Age': '10',
                     'eye colour': 'Blue',
                     'Location': 'Toronto',
                     'Initial Score': '90',
                     'Final Score': '100'},
                    {'blood type': 'D',
                     'Age': '13',
                     'eye colour': 'Blue',
                     'Location': 'Tokyo',
                     'Initial Score': '60',
                     'Final Score': '90'}]}


new_dictionary = {}

, если местоположение - Торонто, добавьте идентификатор, а если местоположение - Токио, проверьте, меньше ли начальная оценка Токио (50), чем исходная оценка Торонто (30) И если итоговая оценка Токио (80) больше, чем начальная оценка Торонто (30), но меньше, чем окончательная оценка Торонто, если да, добавьте все данные, связанные с этим идентификатором, в new_dictionary.

al oop чтобы добавить данные ID в new_dictionary, если:
initial score of tokyo < initial score of toronto
AND
initial score of toronto < final score of tokyo < final score of toronto

Спасибо!

1 Ответ

1 голос
/ 19 июня 2020

Вот что можно сделать:

mylist = {'ID_01': [{'blood type': 'A',
                     'Age': '15',
                     'eye colour': 'Green',
                     'Location': 'Toronto',
                     'Initial Score': '30',
                     'Final Score': '50'}],
          'ID_02': [{'blood type': 'B',
                     'Age': '10',
                     'eye colour': 'Blue',
                     'Location': 'Tokyo',
                     'Initial Score': '50',
                     'Final Score': '80'}]}

initial_score_of_tokyo = [mylist[ID][0]["Initial Score"] for ID in mylist.keys() if mylist[ID][0]['Location'] == 'Tokyo'][0]
initial_score_of_toronto = [mylist[ID][0]["Initial Score"] for ID in mylist.keys() if mylist[ID][0]['Location'] == 'Toronto'][0]
final_score_of_tokyo = [mylist[ID][0]["Final Score"] for ID in mylist.keys() if mylist[ID][0]['Location'] == 'Tokyo'][0]
final_score_of_toronto = [mylist[ID][0]["Final Score"] for ID in mylist.keys() if mylist[ID][0]['Location'] == 'Toronto'][0]


new_dictionary = {}

for ID in mylist.keys():
    if mylist[ID][0]['Location'] == 'Toronto' or (initial_score_of_tokyo < initial_score_of_toronto and initial_score_of_toronto < final_score_of_tokyo < final_score_of_toronto):
          new_dictionary.update({ID:mylist[ID]})

print(new_dictionary)

Вывод:

{'ID_01': [{'blood type': 'A',
            'Age': '15',
            'eye colour': 'Green',
            'Location': 'Toronto',
            'Initial Score': '30',
            'Final Score': '50'}]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...