如何将Python字典的键与值拼接后按键分组存入子列表?
解决Python字典键值拼接并按键拆分到子列表的问题
嘿,我看你已经搞定了键和值的字符串拼接,但卡在了按原字典的键把结果拆分成对应子列表这一步——没问题,咱们调整下代码就能解决。
先梳理下你的现状:
你的目标字典:
dict = {'v1':[1, 2, 3], 'v2': [1, 2, 3, 4]}
当前代码输出的是扁平列表:['v1_1', 'v1_2', 'v1_3', 'v2_1', 'v2_2', 'v2_3', 'v2_4'],而你想要的是按原键分组的嵌套列表:[['v1_1', 'v1_2', 'v1_3'], ['v2_1', 'v2_2', 'v2_3', 'v2_4']]
核心问题是你现在把所有拼接结果直接塞进了同一个大列表,没给每个键单独创建子列表。咱们修改下代码:
my_dict = {'v1':[1, 2, 3], 'v2': [1, 2, 3, 4]} # 别用dict当变量名,它是Python内置类型 concat = [] for key in my_dict.keys(): sub_list = [] # 每个键对应一个独立子列表,每次循环新建 vals = my_dict[key] for v in vals: sub_list.append(str(key + '_' + str(v))) concat.append(sub_list) # 把当前键的子列表加入最终结果
运行这段代码后,concat就会是你期望的嵌套列表啦!
简单说下改动逻辑:
- 为每个键单独初始化
sub_list,专门存储该键对应的所有拼接结果 - 把原来直接往
concat加元素的操作,改成先填充sub_list,处理完当前键的所有值后,再把整个sub_list加入concat - 额外提一句:尽量别用
dict做变量名,它是Python的内置字典类型,容易引发不必要的冲突
内容的提问来源于stack exchange,提问作者LoC
相关产品推荐
相关产品推荐

