python - 根据第一个列表元组值删除两个列表中的相同索引元素
问题描述
如果我有两个 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']
解决方案
使用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']
推荐阅读
- php - PHP laravel前端如何上传/发送csv文件到后端api?
- python - 函数 math.ulp 是否比 Python 中的显式公式更精确?
- python - python上的sql和sql.connector问题
- python - 为什么 Python 3 在将 LIST 转换为 NUMPY ARRAY 时显示不同的形状?还包括正确转换两个列表的代码
- python - 如何根据数据框列中的数字分配分类值?
- python - 如何通过 Pyautogui 自动随机拍摄截图
- database - 如何将两个表空间分配给单个用户?
- javascript - 如何同时在悬停的图像和文本上设置动画?
- css - 在 CSS 中定位元素
- javascript - 节点:将 ES6 JS 模块合并到一个 .min.js 文件中