在python中,检查列表中的元素是否存在于多个列表中

2024-10-01 04:54:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须检查列表中的元素是否存在于多个列表中。在

示例:

cornerCase = [-1, 4]
top = [1, 2]
bottom = [2, 3]
left = [-1, 2]
right = [3,1]

在本例中,我必须检查在顶部、底部、左侧或右侧列表中的任何元素中是否存在-1或4。寻找一个更像Python的解决方案。在

我的尝试:

^{pr2}$

没用。在or之后实现,它寻找其他表达式。在

2.
    check = [i for i in cornerCase if i in (top, bottom, left, right)]

该死的!又没用了。有人能解释一下为什么吗?在

3.
    check = [i for i in cornerCase if i in [top, bottom, left, right]]

显然不起作用,因为检查列表中的元素。在

我检查了if check != [],然后在这些列表中找到了{}。在

有什么好的Python方法来达到这个目的? 不寻找包含多个for循环和针对所有列表的单个if语句的解决方案。在


Tags: inright元素示例列表foriftop
3条回答

最简单的方法(也可能不是太像python)是简单地迭代cornerCase并检查其中任何一个是否在其他列表中:

def check(cornerCase, top, left, bottom, right):
  for i in cornerCase:
    if i in top or i in left or i in bottom or i in right:
      return true
  return false

虽然这可能不是一个很好的解决方案,但它工作简单,效果很好

check = [i for i in cornerCase if i in top + bottom + left + right]

简单方法: 对于角盒中的c: 如果顶部为c,左侧为i,底部为i,右侧为i: 返回true 否则返回false

或者: 列表=[上,左,右,下] 对于角盒中的c: 如果c在列表中 返回true 否则返回false

相关问题 更多 >