根据值和键从其他字典替换字典的值

时间:2021-04-29 18:33:26

标签: python dictionary

我是 Python 的初学者,所以也许答案很简单,我找到了很多信息来根据其他字典值更新字典值,但总是使用相同的键。

我有两本词典。一种是:

global_informations = {"id": "ID_PRODUIT",
                       "name": "NOM_PRODUIT",
                       "type_fdes": "PRODUIT_TYPE",
                       "nb_refs_commerciales": "NB_REF_COMM",
                       "quantite_unit_fonct": "QUANTITE_UF",
                       "type_unit_fonct": "ID_UNIT_UF",
                       "duree_vie": "DVT",
                       "carbon_biogenique": "CARBONE_BIO"
}

在这个目录中,PRODUIT_TYPE 是一个 int(1,2 或 3) 我想根据这个字典替换这个值:

type_fdes_dictionary = {1: "individuel",
                        2: "collectif",
                        3: "defaut"
}

例如,如果我有:

global_informations = {"id": "ID_PRODUIT",
                               "name": "NOM_PRODUIT",
                               "type_fdes": 1,
                               "nb_refs_commerciales": "NB_REF_COMM",
                               "quantite_unit_fonct": "QUANTITE_UF",
                               "type_unit_fonct": "ID_UNIT_UF",
                               "duree_vie": "DVT",
                               "carbon_biogenique": "CARBONE_BIO"
}

我想要:

global_informations = {"id": "ID_PRODUIT",
                       "name": "NOM_PRODUIT",
                       "type_fdes": "individuel",
                       "nb_refs_commerciales": "NB_REF_COMM",
                       "quantite_unit_fonct": "QUANTITE_UF",
                       "type_unit_fonct": "ID_UNIT_UF",
                       "duree_vie": "DVT",
                       "carbon_biogenique": "CARBONE_BIO"
}

如何替换这个值?

3 个答案:

答案 0 :(得分:0)

这是一个单班轮: #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; int array[n]; for (int i = 0; i < n; i++) { cin >> array[n]; } int const N = 1e4+2; bool indexarray[N]; for (int i = 0; i < N; i++) { indexarray[i] = false; } for (int i = 0; i < n; i++) { if (array[i] > 0) { indexarray[array[i]] = true; } } int ans = -1; for (int i = 1; i < N; i++) { if (indexarray[i] == false) { ans = i; } } cout << ans << endl; return 0; }

答案 1 :(得分:0)

    global_informations = {"id": "ID_PRODUIT",
                       "name": "NOM_PRODUIT",
                       "type_fdes": 1,
                       "nb_refs_commerciales": "NB_REF_COMM",
                       "quantite_unit_fonct": "QUANTITE_UF",
                       "type_unit_fonct": "ID_UNIT_UF",
                       "duree_vie": "DVT",
                       "carbon_biogenique": "CARBONE_BIO"
}


type_fdes_dictionary = {1: "individuel",
                        2: "collectif",
                        3: "defaut"
}

print({k: type_fdes_dictionary.get(v, v) for k, v in global_informations.items()})

输出:{'id':'ID_PRODUIT','name':'NOM_PRODUIT','type_fdes':'individuel','nb_refs_commerciales':'NB_REF_COMM','quantite_unit_fonct':' QUANTITE_UF', 'type_unit_fonct': 'ID_UNIT_UF', 'duree_vie': 'DVT', 'carbon_biogenique': 'CARBONE_BIO'}

答案 2 :(得分:0)

有几种方法可以做到这一点 -

  1. 通过 for 循环 -
for key,value in global_informations.items():
    if key=='type_fdes':
        global_informations[key] = type_fdes_dictionary[value]
  1. 单线
global_informations['type_fdes'] = type_fdes_dictionary[global_informations['type_fdes']]