python中两个数组之间的部分匹配

时间:2014-02-13 17:37:46

标签: python list data-structures

我有两个数组:

a1 = ['a', 'b', 'c', 'd']
a2 = ['a_111', 'd_111']

如何循环彻底的数组并进行部分匹配才能找到差异

['b', 'c']

并将'b_111''c_111'添加到数组a2

在python中有什么特别的方法吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用列表理解/ list.extendall

>>> 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']