Python 按二维列表第一子列表重复值分组提取第二子列表对应元素方法咨询
你可以通过enumerate()函数同时遍历第一个子列表的索引和对应值,结合字典实现动态分组,无需提前预知第一个子列表的数值范围:
SourceSelection = [[1, 1, 2, 1], [1, 2, 3, 4]] group_dict = {} # enumerate返回(索引,对应元素)的元组 for index, group_key in enumerate(SourceSelection[0]): # 不存在的分组自动初始化空列表 if group_key not in group_dict: group_dict[group_key] = [] # 追加第二个子列表同位置的元素 group_dict[group_key].append(SourceSelection[1][index])
运行后分组结果全部存在group_dict中:
group_dict[1]即为你需要的Source1List,值为[1, 2, 4]group_dict[2]即为你需要的Source2List,值为[3]
如果需要生成独立的分组变量,也可以通过字典取值直接赋值,相比提前写死固定数量的空列表,动态字典的适配性更强,不管第一个子列表的数值怎么变化都能正常分组。
内容的提问来源于stack exchange,提问作者A9M
相关产品推荐
相关产品推荐

