如何将含缺失值的多个Python列表转换为指定结构字典
解决方案
直接使用字典推导式+zip多列表打包即可实现,同时自动过滤空值,适配任意数量的值列表场景:
a = ['apple', 'orange', 'lemon'] b = ['London', 'New York', 'Tokyo'] c = ['Red', 'Orange', 'Yellow'] d = ['good', 'bad', ''] fruit_dictionary = { key: [val for val in value_group if val != ''] for key, *value_group in zip(a, b, c, d) }
逻辑说明
- 用
zip(a, b, c, d)将所有列表按对应位置打包,每轮迭代会拿到类似('apple', 'London', 'Red', 'good')的元组 - 解包时把第一个元素赋值给
key作为字典的键,剩余元素全部存入value_group作为值的候选列表 - 遍历
value_group过滤掉空字符串这类缺失值,最终组成对应键的值列表 - 后续如果需要新增其他维度的列表,直接添加到
zip的参数中即可,无需修改其他逻辑
运行上述代码得到的fruit_dictionary和预期输出完全一致。
内容的提问来源于stack exchange,提问作者codedancer
相关产品推荐
相关产品推荐

