如何对比嵌套列表的首个元素与另一列表,补全缺失值为对应元素和0
解决方案
可以通过以下步骤实现需求:
- 将
list2转换为字典,以子列表的首个元素为键,第二个元素为值,这样能快速查找对应元素的匹配值 - 遍历
list1中的每个元素,根据字典的查找结果生成新的子列表:存在匹配值则保留原对子,不存在则补0
代码实现
list1 = [1, 2, 3, 4, 5, 6] list2 = [[1,7], [3,11], [5,16]] # 转换为字典用于快速查找 list2_dict = {item[0]: item[1] for item in list2} # 生成新列表 new_list = [[num, list2_dict.get(num, 0)] for num in list1] print(new_list) # 输出: [[1,7], [2,0], [3,11], [4,0], [5,16], [6,0]]
说明
- 使用字典推导式把
list2转为字典,时间复杂度为O(n),后续查找操作的时间复杂度是O(1),整体效率较高 - 列表推导式遍历
list1,利用字典的get方法,当键不存在时返回默认值0,简洁高效地生成目标列表
内容的提问来源于stack exchange,提问作者nsp077
相关产品推荐
相关产品推荐

