我有预定义的字典,我需要一个函数来从多个输入字典中形成一个字典,其中键是输入字典的名称。
例如,我有以下内容:
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? 但无法得出答案。
建议?
答案 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;
}
}