2024-05-16 11:20:27 发布
网友
假设我在python中有一个嵌套的dict,类似于:
dict
a[1][2] = 4 a[1][3][3] = 5
我还有另一个简单的非嵌套dict,如下所示:
如何将第一个dict中与第二个dict中的键匹配的所有keys和值替换为第二个dict的相应值,以便输出如下所示:
a["Kansas City"]["Toledo"] = "Champaign" a["Kansas City"]["Houston"]["Houston"] = "Seattle
字符串替换? 然后用ast把字符串转换成dict??在
a={} a[1] = { 2 : 4 } a[2] = { 3 : { 3 : 4 }} replacement = { 1 : "Kansas City", 2 : "Toledo", 3 : "Houston", 4 : "Champaign", 5 : "Seattle"} aStr = str(a) for key,value in replacement.iteritems() : aStr = aStr.replace( str(key), "'%s'"%value ) import ast newA = ast.literal_eval(aStr) print newA
我采用了一种递归的方法,如果数据的值是dictionary-尝试替换键和值。否则,它将数据视为单个值并尝试转换它。在
replace_dict是指出如何转换值的字典,data是当前值。在
replace_dict
data
def replace_key_val(data, replace_dict): if type(data)== dict: return {replace_dict[k] : replace_key_val(v, replace_dict) for k,v in data.iteritems()} return replace_dict[data]
字符串替换? 然后用ast把字符串转换成dict??在
我采用了一种递归的方法,如果数据的值是dictionary-尝试替换键和值。否则,它将数据视为单个值并尝试转换它。在
replace_dict
是指出如何转换值的字典,data
是当前值。在相关问题 更多 >
编程相关推荐