首页 > 解决方案 > 根据第一个列表元组值删除两个列表中的相同索引元素

问题描述

如果我有两个 Python 列表如下:

indices_tuple_list = [(1,1),(1,2),(3,1)]
values_list = ['a','b','c']

我想在两个列表中删除基于给定值的相同索引。该值表示indices_tuple_list元组中的第二个元素。因此,如果匹配,则values_list必须删除元组和相应的元素。

例子:

给定值 1:

结果列表:

indices_tuple_list = [(1,2)]
values_list = ['b']

给定值 2:

结果列表:

indices_tuple_list = [(1,1),(3,1)]
values_list = ['a','c']

标签: pythonpython-3.x

解决方案


使用zip和列表理解。

remove_val = 2
result = [i for i in zip(indices_tuple_list, values_list) if i[0][1] != remove_val]
result
[((1, 1), 'a'), ((3, 1), 'c')]

new_indices, new_values = map(list, zip(*result))

输出

new_indices
[(1, 1), (3, 1)]
new_values
['a', 'c']

推荐阅读