我希望这之前没有被问过,但是我很难把我正在尝试做的事情放在文字中!Python,删除整个列表,如果它包含匹配的元组
如果我解释我的输入,以及所需的输出
l1 = [[(14, 'h'), (14, 'd')], [(14, 'h'), (14, 'c')], [(14, 'h'), (14, 's')], [(14, 'd'), (14, 'c')], [(14, 'd'), (14, 's')], [(14, 'c'), (14, 's')], [(13, 'h'), (13, 'd')], [(13, 'h'), (13, 'c')], [(13, 'h'), (13, 's')], [(13, 'd'), (13,'c')], [(13, 'd'), (13, 's')], [(13, 'c'), (13, 's')], [(12, 'h'), (12, 'd')], [(12, 'h'), (12, 'c')], [(12, 'h'), (12, 's')], [(12, 'd'), (12, 'c')], [(12, 'd'), (12, 's')], [(12, 'c'), (12, 's')]]
l2 = [(13,'h'),(13,'d'),(14,'c'),(14,'s'),(14,'h')]
所以这第一个列表,L1,是列出的清单可能更容易的,每个单子是2张牌扑克手。
基本上我想要做的是,如果一张卡在l2中,需要将l1中的手去掉。 (14,'c')]需要从l1中删除,因为(14,'c')在l2中 - 尽管(14,'d')不是' t在l2。
从这个例子所需的输出应该是,
[[(13, 'c'), (13, 's')], [(12, 'h'), (12, 'd')], [(12, 'h'), (12, 'c')], [(12, 'h'), (12, 's')], [(12, 'd'), (12, 'c')], [(12, 'd'), (12, 's')], [(12, 'c'), (12, 's')]]
我想过遍历L1内所有元组和删除他们,如果他们在L2,再后来回去遍历在列表l1并删除任何没有len == 2.这似乎不是最好的方式去,但。
有什么想法?
ManyTIA!
出于好奇,为什么不能在“卡的使用对象列表“类而不是元组列表的列表? – syrion 2011-03-22 19:04:08
你得问问我继承的代码:) – GP89 2011-03-22 19:18:04