Python输入字符串转字典列表时输出末尾多余},如何去除
问题原因
- 存在冗余代码:外层遍历
str_arr的for循环完全无效,列表生成式直接对完整输入字符串做处理,不需要遍历单个字符 - 拼接逻辑错误:你用
"}, "作为分隔符拆分字符串后,得到的每段内容本身已经不带分隔符,后续主动拼接'},'是导致末尾多余符号的直接原因 - 输入的字典列表格式字符串首尾自带
[、]标识,拆分后首段开头会残留[、末段末尾会残留],需要额外清洗
修复方案
优先推荐用内置json模块解析,这是处理标准JSON格式字典列表输入最稳妥的方案,不需要手动处理字符串拆分:
import json str_arr = input() # 直接将合法JSON格式的输入字符串转换为Python列表对象 dict_list = json.loads(str_arr) print(len(dict_list)) for item in dict_list: # 需要输出字典字符串形式直接转str即可 print(str(item))
如果你坚持要手动拆分字符串处理,可以按如下逻辑修改代码:
str_arr = input().strip() d = "}, " # 先移除字符串首尾的列表标识[] content = str_arr.lstrip("[").rstrip("]") # 拆分后仅补全缺失的右大括号,不要额外加逗号 new_str = [e.strip().rstrip("}") + "}" for e in content.split(d) if e] print(len(new_str)) for i in new_str: print(i)
内容的提问来源于stack exchange,提问作者Alikula
相关产品推荐
相关产品推荐

