Надеюсь, об этом раньше не спрашивали, но мне сложно выразить словами, что я пытаюсь сделать!
Может быть проще, если я объясню свой ввод и желаемый вывод
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, 'd'), (14, 'c')] должна быть удалена из l1, потому что (14, 'c') находится в l2 - даже если (14, 'd') isn ' т в 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!