根据第一个列表元组值在两个列表中删除相同的索引元素

如果我有两个如下的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']


弑天下
浏览 169回答 3
3回答

浮云间

使用zip和列表理解。remove_val = 2result = [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']

芜湖不芜

to_remove = 1indices_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']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python