比较两个列表并打印出不相等的元素

wan*_*eek 2 python equality list

我有以下格式的两个列表:

list1 = ['A','B','C','D']
list2 = [('A',1),('B',2),('C',3)]
Run Code Online (Sandbox Code Playgroud)

我想比较两个列表并打印出第三个列表,这些列表将包含list1中但不在list2中的那些元素,我想仅比较list2 [i] [0]元素.

我尝试了下面的代码:

fin = [i for i in list1 if i not in list2]
Run Code Online (Sandbox Code Playgroud)

但是它会打印list1中的所有元素.我希望上面的输出中的输出是:

fin = ['D']
Run Code Online (Sandbox Code Playgroud)

有人可以建议怎么做吗?另外,我不想将我的2D数组list2转换为1D数组.

Ali*_*har 6

使用设定差异.

set(list1) - set(i[0] for i in list2)
Run Code Online (Sandbox Code Playgroud)