python: override a single dict key based on a separate dict
本问题已经有最佳答案,请猛点这里访问。
我敢肯定这里有这样的问题,但我似乎找不到。我有一本叫
1 | query = {'day': 0, 'item': 'Chipotle'} |
以及映射字典:
1 | day_mapping = {0:2, 1:3, 2:4, 3:5, 4:6, 5:7, 6:1} |
我需要重写
1 | query = {'day': 2, 'item': 'Chipotle'} |
注:
1 | query = {'item': 'Chipotle'} |
这是我到目前为止想出来的,但必须有更好的方法来使用列表理解或其他东西:
1 2 3 | for k, v in query.items(): if k == 'day': query[k] = day_mapping[v] |
原因是,对于python的
是的
1 2 3 4 | try: query['day'] = day_mapping[query['day']] except KeyError: pass |
你可以使用
1 2 3 4 5 6 | query = {'day': 0, 'item': 'Chipotle'} day_mapping = {0:2, 1:3, 2:4, 3:5, 4:6, 5:7, 6:1} day = query.get('day') # returns `None` if 'day' key not found in `dict` if day is not None: query['day'] = day_mapping[day] |
更新的值
1 | {'day': 2, 'item': 'Chipotle'} |