Python 比较两个列表的元素并为第二个列表添加异常?

Python 比较两个列表的元素并为第二个列表添加异常?,python,Python,我需要比较两个列表的元素,而不考虑顺序或位置。我知道人们问了很多这个问题。但是我有一个例外,第二个列表排除for循环中的元素。下面显示一段代码: s = [0, 2, 5, 6, 8, 9] c= [2,6,7,8,9] if s in (c - v): print ("%s is a root "%v) # I'm expecting here when 7 is excluded from c all the elements

我需要比较两个列表的元素,而不考虑顺序或位置。我知道人们问了很多这个问题。但是我有一个例外,第二个列表排除for循环中的元素。下面显示一段代码:

 s = [0, 2, 5, 6, 8, 9]
 c=  [2,6,7,8,9]
   
     if s in (c - v):
     print ("%s is a root "%v)
     # I'm expecting here  when 7 is excluded from c all the elements of c are there in S and the condition is true 
此代码引发一个错误:

  unsupported operand type(s) for -: 'list' and 'int'
在这段代码中,c,s是两个列表,v是int

因此,我的问题是如何从列表中排除此元素。我知道c的大小小于s的大小,但实际上,c是我的参考,而s的大小是可变的,它可能或多或少,换句话说,我在c中搜索s的元素,而不管大小如何

非常感谢您的帮助

import networkx as nx

edges = [(1, 0),(1, 4),(1, 6),(1, 8),(0, 3),(0, 4),(0, 5),(0, 7),
    (0, 9),(2, 5),(2, 7),(3, 4),(3, 8),(3, 9),(4, 6),
    (4, 8),(4, 9),(5, 6),(5, 7),(5, 8),(6, 7),(6, 8),(6, 9),(7, 8),(7,9)]

k= nx.Graph()
k.add_edges_from(edges)

c= [2,6,7,8,9]

for v in c:
    s = list(k.neighbors(v))
    if s != v and s in c:
        print ("%s is a root "%v)
结果什么都没有。
这就是你想要的吗?

多亏了@adamkwm,他引导我完成了答案和澄清。 这正是我想要的:

  s = [0, 2, 5, 6, 8, 9]
  c = [2, 6, 7, 8, 9]
  x = set(c) - (set(s) & set(c))
  for v in x:
      print(v)

请提供一份报告。我想知道的主要问题是,
c
的所有元素都是可哈希的吗?如果是这样,可能最好使用
集合
。但是输入和预期输出也很重要。
if s!=c中的v和s
动态创建一个新的列表理解:
如果s在[x代表x代表x如果x!=c]
c中s的元素意味着[2,6,8,9]?让我们来看看。实际上,我希望元素7是一个答案,但我现在发现在这种情况下s的元素比c多,因此条件也是假的。我想解释这两种情况,如果S在C或C在扫描我写:如果S!=c中的v和s或如果c!=s中的v和c:我再次尝试了,
x=set(c)-set(s)
已经可以了,不需要&part。