Python中关联原列表与结果列表,查找对应值相同的元素
解决方法:找出对应结果相同的元素
嘿,这事儿不难,我们可以通过分组统计的方式快速找出N中对应ndlist结果相同的元素。下面是具体的步骤和代码实现:
第一步:明确输入数据
首先我们先把给定的两个列表明确下来:
N = [13, 14, 15, 25, 27, 31, 35, 36, 43] ndlist = [4, 30, 0, 42, 48, 4, 3, 42, 3]
第二步:用字典分组对应元素
我们可以用字典来存储每个结果对应的N元素列表,遍历两个列表的对应元素,把相同结果的元素归到同一组:
from collections import defaultdict # 初始化一个默认字典,值为列表类型 result_groups = defaultdict(list) # 遍历索引和对应的值 for num, res in zip(N, ndlist): result_groups[res].append(num) # 过滤出有多个元素的组(也就是结果相同的元素集合) same_result_elements = {k: v for k, v in result_groups.items() if len(v) > 1}
第三步:查看结果
运行上面的代码后,same_result_elements里就是我们要的结果:
- 结果为4的元素:
[13, 31] - 结果为42的元素:
[25, 36] - 结果为3的元素:
[35, 43]
如果你不想用collections模块,也可以用普通字典实现:
result_groups = {} for num, res in zip(N, ndlist): if res not in result_groups: result_groups[res] = [] result_groups[res].append(num) same_result_elements = {k: v for k, v in result_groups.items() if len(v) > 1}
这样就能清晰地找出所有对应结果相同的元素啦!
内容的提问来源于stack exchange,提问作者ccc
相关产品推荐
相关产品推荐

