我在python中有两个列表(list1和list2),其中填充了自己的数据类型。我想将它们与列表进行比较,并将这些列表的所有元素提供给stdout(或其他位置),但要以特定的顺序进行(不以任何方式对列表进行排序)。
List1和List2可以具有不在另一个列表中的元素,但是也可以具有在另一个列表中的元素。这些元素(在两个列表中都出现)应在同一行输出。但是,仅在一个列表中出现的元素最后也应该以正确的顺序排列。
例子:
List1 = [A,B,C,D,F,H,G];
List2 = [A,C,D,E,H];
output should be:
List1 |List2
A A
B
C C
D D
E
F
H H
G
我如何以这种方式“分类”?
import difflib, re
list_a = ['A', 'B', 'C', 'D', 'F', 'H', 'G']
list_b = ['A', 'C', 'D', 'E', 'H']
for i in difflib.Differ().compare(list_a, list_b):
differ_char, letter = re.match(r'([\s\-+]) ([A-Z])', i).groups()
choices = [' ' + letter, letter + ' ', letter + ' ' + letter]
print choices[['+', '-', ' '].index(differ_char)] # print lines
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句