如果我有两个如下的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']
3 回答
浮云间
TA贡献1829条经验 获得超4个赞
使用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']
芜湖不芜
TA贡献1796条经验 获得超7个赞
to_remove = 1
indices_tuple_list = [(1,1),(1,2),(3,1)]
values_list = ['a','b','c']
new_indices_tuple_list = [v for v in indices_tuple_list if v[1] != to_remove]
new_value_list = [v for i, v in enumerate(values_list) if indices_tuple_list[i][1] != to_remove]
print(new_indices_tuple_list)
print(new_value_list)
印刷:
[(1, 2)]
['b']
对于to_remove = 2输出是:
[(1, 1), (3, 1)]
['a', 'c']
添加回答
举报
0/150
提交
取消