合并列表内字典后,如何将字符串格式结果转换为dict类型?
解决字典列表合并为单字典的问题
你原来用字符串拼接的方式会把字典转成字符串,自然无法调用字典的items()方法。正确的做法是直接合并字典对象,而非转成字符串拼接。
方法一:字典推导式(简洁写法)
# 注意:不要用dict作为变量名,这是Python内置类型,会覆盖内置函数 original_list = [{'A': 2}, {'B': 2}] # 合并所有小字典为一个大字典 merged_dict = {key: value for d in original_list for key, value in d.items()} # 包装成你需要的列表格式 result = [merged_dict]
方法二:使用update()方法(直观写法)
original_list = [{'A': 2}, {'B': 2}] merged_dict = {} for d in original_list: # 逐个将小字典的键值对合并到大字典中 merged_dict.update(d) result = [merged_dict]
执行上述任意方法后,result是包含字典的列表,此时再运行你的排序循环就不会报错:
rtn_value = {} count = 2 # 假设初始count值为2 for k, v in sorted(merged_dict.items(), key=lambda item: item[1], reverse=True): rtn_value[k] = v count -= 1 if count == 0: print(rtn_value)
原方法出错原因
你用', '.join([str(x) for x in original_list])得到的是字符串(比如"{'A': 2}, {'B': 2}"),字符串类型没有items()方法,因此会抛出AttributeError。必须直接操作字典对象,而非把字典转成字符串再拼接。
内容的提问来源于stack exchange,提问作者Code Ninja
相关产品推荐
相关产品推荐

