如果有两个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']发布于 2018-07-25 16:18:43
使用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']发布于 2018-07-25 16:08:52
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']发布于 2018-07-25 16:12:39
def remove(value):
for index, tuple in enumerate(indices_tuple_list):
if tuple[1] == value:
indices_tuple_list.pop(index)
values_list.pop(index)https://stackoverflow.com/questions/51523345
复制相似问题