【发布时间】:2015-08-31 11:54:12
【问题描述】:
我在 python 中有两个列表,例如:
列表1:
('C2244_LNO70_SARM', '1/1/2', '1/2/8', 'CF164_LUJ70_SAR8', 'Router')
('C1723_LN270_SARM', '1/1/1', '1/1/8', 'CF164_LUJ70_SAR8', 'Router')
('CF618_JURI70_SARM', '1/1/1', '1/2/7', 'CF164_LUJ70_SAR8', 'Router')
('CF618_JURI70_SARM', '1/1/2', '1/1/1', 'CF617_LJ370_SARM', 'Router')
('C2335_ODR70_SARM', '1/1/2', '1/1/2', 'CF693_LAC70_SARM', 'Router')
列表2:
('CF618_JURI70_SARM')
('C2335_ODR70_SARM')
('CF617_LJ370_SARM')
现在,我想沿着 List1 走,如果 list2 中不存在 column0 或 column3 的值,则应删除该记录。
例如,在List1(4,3) 中,值CF693_LAC70_SARM 在List2 中不存在。然后可以从 List1 中删除第 4 行。
最好的方法是什么?我尝试使用if-else 条件嵌套两个for-loop,但我无法实现...
感谢任何提示...
卢卡斯
【问题讨论】:
-
在您的示例中,将删除哪些内容,保留哪些内容?如果不匹配的 column0 或 column3 意味着该条目已被删除,则将仅保留
'CF618... CF617项。 -
嗨@TigerhawkT3,是的,确实,如果 col0 或 col3 中的任何值与 List2 中的任何项目都不匹配,则必须从 List1 中删除该行。因此,在我的示例中,只有 row3
CF618...CF617将保留在 List1 中。 -
@LucasAimaretto 你有 column0 或 column3 的值不存在,这意味着如果两者都不存在,删除元组?
-
嗨@PadraicCunningham,对不起我的英语!我的意思是:如果 List2 中不存在 col0 或 col3 值中的任何一个,则必须删除该行!在我的示例中,只有 row3 应该存在 (
CF618 ... CF617)。换句话说:col0 和 col3 的值都需要存在于 List2 中。 -
@LucasAimaretto,不用担心,然后在我的答案的第二部分使用 and 或 set.issuperset。