Python中如何将字典的列表类型值转换为竖线分隔的字符串
问题原因分析
你原有代码存在两个核心问题:
- 没有提前初始化空字典
mynew,直接给mynew[keys]赋值会触发变量未定义报错 mynew[keys] =后面没有跟上要赋值的内容,属于语法错误
修正后的实现方案
方案1:和你原有逻辑一致的循环实现
先初始化空字典,再遍历原有字典完成赋值即可:
pydict = {"Market":['market', 'shop', 'shopping']} # 先初始化空字典存储结果 mynew = {} # 遍历原字典的键值对(这里用单数key/value命名更符合单条遍历的语义,你也可以保留原来的keys/values命名) for key, value in pydict.items(): joined_str = "|".join(value) mynew[key] = joined_str print(key, joined_str) print(mynew)
运行后输出就是预期效果:{'Market': 'market|shop|shopping'}
方案2:更简洁的字典推导式实现
如果不需要额外的逐行打印逻辑,用字典推导式一行就能完成转换,代码更精简:
pydict = {"Market":['market', 'shop', 'shopping']} mynew = {key: "|".join(value) for key, value in pydict.items()} print(mynew)
内容的提问来源于stack exchange,提问作者Rahul Anand
相关产品推荐
相关产品推荐

