如何将字符串转换为多值字典?现有代码输出不符预期求解决
解决字典多值映射的问题
嗨,我来帮你搞定这个问题~
首先得说明一下:你期望的{'Name': 'Value1', 'Value2'}其实不符合Python字典的语法规则哦——字典里每个键只能对应一个值,所以没法直接让Name同时对应两个独立的值。正确的实现方式是把多个值放到一个列表(或元组)里,作为Name键对应的单个值,也就是得到{'Name': ['Value1', 'Value2']}这种结构。
为什么你的原代码不行?
你的代码里用了dict(zip(a, c)),zip()函数会把两个可迭代对象按位置一一配对:a里只有一个元素"Name",所以只会和c的第一个元素"Value1"配对,c里的"Value2"就被直接忽略了,这就是为什么你只得到{'Name': 'Value1'}。
正确的实现方法
直接创建字典,把Name键对应的值设为拆分后的列表c就可以了:
a = ["Name"] b = "Value1 Value2" c = b.split() d = {a[0]: c} # 用a的第一个元素作为键,c作为对应的值
运行这段代码后,d的结果就是:
{'Name': ['Value1', 'Value2']}
如果之后需要遍历Name对应的多个值,直接通过d['Name']拿到列表,再循环处理就行啦~
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

