如何将Python嵌套字典的键与列表值拼接为指定格式的列表?
实现方案分享
首先得提一句:你用list当变量名不太合适哦,这是Python的内置类型,容易引发冲突,我下面的示例里会改成my_dict~
方法一:简洁的列表推导式
这是最Pythonic的写法,一行就能搞定:
my_dict = {"A": ["1", "2", "3"], "B": ["2"], "C": ["1", "2"]} result = [f"{key}.{value}" for key, values in my_dict.items() for value in values] print(result) # 输出: ['A.1', 'A.2', 'A.3', 'B.2', 'C.1', 'C.2']
原理很简单:先遍历字典的每一组键值对,再遍历每个键对应的列表元素,用f-string把键和元素用.拼接起来,最后自动收集成列表。
方法二:分步循环(适合新手理解)
如果觉得列表推导式有点绕,用两层普通循环也能实现,逻辑更直观:
my_dict = {"A": ["1", "2", "3"], "B": ["2"], "C": ["1", "2"]} result = [] # 外层循环取字典的键和对应的列表 for key, values in my_dict.items(): # 内层循环遍历列表里的每个元素 for value in values: # 拼接后添加到结果列表 result.append(f"{key}.{value}") print(result) # 输出和上面一致
兼容旧Python版本的写法
如果你的Python版本是3.6之前(不支持f-string),可以换成str.format()的方式:
# 列表推导式版本 result = ["{}.{}".format(key, value) for key, values in my_dict.items() for value in values] # 循环版本 result.append("{}.{}".format(key, value))
内容的提问来源于stack exchange,提问作者Floris
相关产品推荐
相关产品推荐

