给出两个列表,目的是找到它们之间的不重叠值。
基于OP中讨论的建议。这可以通过两种方法之一实现
list_one=['ISL','BUK','ORG','CLC','STS','PLP','t1','t2','t3','t4','DE1','DE2','DE4']
list_two=['t1','t2','t3','t4']
APP1=set(list_one) ^ set(list_two)
APP2 = set(list_one).symmetric_difference(list_two)
两个建议均已输出
{'DE4', 'DE2', 'CLC', 'STS', 'ORG', 'BUK', 'ISL', 'DE1', 'PLP'}
虽然可以,但是来自list_one
的顺序却失真了。
我的问题是,如何将上面的代码修改为如下所示的输出,其中的顺序遵循list_one
EXPECTED_OUTPUT=['ISL','BUK','ORG','CLC','STS','PLP','DE1','DE2','DE4']
答案 0 :(得分:1)
inner_set = set(list_one) & set(list_two)
EXPECTED_OUTPUT = [i for i in list_one + list_two if i not in inner_set]
# or
EXPECTED_OUTPUT = [i for i in list_one + list_two if not (i in list_one and i in list_two)]