我有两个数组:
a1 = ['a', 'b', 'c', 'd']
a2 = ['a_111', 'd_111']
如何循环彻底的数组并进行部分匹配才能找到差异
['b', 'c']
并将'b_111'
,'c_111'
添加到数组a2
?
在python中有什么特别的方法吗? 谢谢!
答案 0 :(得分:2)
您可以使用列表理解/ list.extend
和all
:
>>> a2 += [x + '_111' for x in a1 if all(x not in y for y in a2)]
>>> a2
['a_111', 'd_111', 'b_111', 'c_111']
或强>
>>> a2.extend(x + '_111' for x in a1 if all(x not in y for y in a2))
如果您也想要['b', 'c']
,那么您可以将上述代码分为两个步骤:
>>> partial = [x for x in a1 if all(x not in y for y in a2)]
>>> partial
['b', 'c']
>>> a2 += [x + '_111' for x in partial]
>>> a2
['a_111', 'd_111', 'b_111', 'c_111']