Filter elements having same value at the corresponding index of two lists
我有两个列表,我想将每个项目与相关索引相匹配。公式是什么?我使用了set,但它不考虑特定的索引。
1 2 3 4
| list1 = [1 , 2 , 3, 5, 8]
list2 = [2 , 2 , 8, 5, 1]
out_put= [2 , 5] |
- @Jimfasarakishilliard我认为这不是一个正确的重复目标,因为这个问题与索引相同的两个列表之间的公共元素有关(不同于找到两个列表的交集)。我不会再打开这个问题,以防我错过了什么,你也许能澄清我的问题。
- @Moinuddinchuadri您给出的答案([i for i, j in zip(list1, list2) if i==j]与dupe([i for i, j in zip(a, b) if i == j]的顶部答案中的代码几乎完全相同)。所以我认为这是一个准确的欺骗目标。
- @Jgreenwell是的。我看到了。我不知道为什么有人在那个问题上写了这个答案,因为这个答案在那里又是不相关的。
- 我的假设是这样我们就可以为两个案例@moinuddinchuadri都有一个重复目标,然后人们可以通过链接的重复找到他们需要的版本。
您可以使用zip在两个列表的每个索引处过滤相同的元素,如下所示:
1 2 3 4
| >>> list1 = [1 , 2 , 3, 5, 8]
>>> list2 = [2 , 2 , 8, 5, 1]
>>> [i for i, j in zip(list1, list2) if i==j]
[2, 5] |
- 哦,孩子,你在20秒内打败了我。
- @阿尔曼,天哪,你们跑得很快…不能眨眼,已经回答了…
使用zip功能:
1
| res = [x[0] for x in zip(list1, list2) if x[0] == x[1]] # [2, 5] |