python dicts中的dicts的python dicts

时间:2019-04-07 16:08:13

标签: python python-3.x

我有预定义的字典,我需要一个函数来从多个输入字典中形成一个字典,其中键是输入字典的名称。

例如,我有以下内容:

double_left = {
    'left': 6
}

double_right = {
    'right': 6
}

输出应为:

>>> output_dicts
{'double_left': {'left': 6}, 'double_right': {'right': 6}}

我已经尝试过: How do you create nested dict in Python? 但无法得出答案。

建议?

4 个答案:

答案 0 :(得分:3)

如果您想动态地执行此操作而无需对顶级项目的名称进行硬编码,则可以使用globals()和/或locals()按名称获取变量列表。例如:

output = {}
for name, val in globals().items():
    # Skipping variables that aren't dicts, and special
    # variables starting with '_'
    if isinstance(val, dict) and not name.startswith('_'):
        output[name] = val

for name, val in locals().items():
    if isinstance(val, dict) and not name.startswith('_'):
        output[name] = val

或更紧凑:

output = {name:val for name, val in (list(locals().items()) +
                                     list(globals().items()))
          if isinstance(val, dict) and not name.startswith('_')}

答案 1 :(得分:2)

只需创建一本新字典。

output_dict = {"double_left": double_left, "double_right": double_right}
print(output_dict)

答案 2 :(得分:0)

就像您当前的字典具有“键”:“值”对一样,您的值是整数(6),您可以创建一个新的字典,其中键是字典的名称,而值是嵌套字典。

output_dicts = {'double_left': double_left, 'double_right': double_right}

>>> output_dicts
{'double_left': {'left': 6}, 'double_right': {'right': 6}}

您也可以使用dict_name[new_key] = new_value。 例如:

output_dicts['double_left'] = double_left
output_dicts['double_right'] = double_right

答案 3 :(得分:0)

尝试一下

public boolean insertData(String Name,String Birthdate,String Area, String ID){
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(ColunNameForName, Name);
    contentValues.put(ColunNameForBirthdate, Birthdate);
    contentValues.put(ColunNameForArea, Area);
    contentValues.put(ColunNameForID, ID);

    long result = db.insert(TABLE_NAME, null, contentValues);

    if(result == -1){
        return false;
    }
    else{
        return true;
    }
}