我有两个列表,其中包含示例中的值:
List 1 = TK123,TK221,TK132
AND
List 2 = TK123A,TK1124B,TK221L,TK132P
我想要做的是获取另一个数组,其中包含列表 1 和列表 2 之间匹配的所有值,然后输出不匹配的值。
出于我的目的,“TK123”和“TK123A”被认为是匹配的。所以,从上面的列表中,我只会得到TK1124B
.
我并不特别关心速度,因为我计划运行该程序一次并完成它。
>>> list1 = 'TK123','TK221','TK132'
>>> list2 = 'TK123A','TK1124B','TK221L','TK132P'
>>> def remove_trailing_letter(s):
... return s[:-1] if s[-1].isalpha() else s
...
>>> diff = set(map(remove_trailing_letter, list2)).difference(list1)
>>> diff
set(['TK1124'])
您可以将最后一个字母添加回来,
>>> add_last_letter_back = {remove_trailing_letter(ele):ele for ele in list2}
>>> diff = [add_last_letter_back[ele] for ele in diff]
>>> diff
['TK1124B']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)