我一直在尝试在Python 2.7中使用两个列表。我已经走了一段路,但花时间搜寻并没有带来太多的结果。与Python的逆向匹配
List1
:是我在List2中搜索的特定数字序列的列表。 (例如)['209583', '185372', '684392', '995423']
List2
:在list1中有这些数字的变化。 (例如)['209583_345829', '57185372', '853921864']
现在我可以匹配和拉下我在下面找到的东西......但我也在寻找反过来;将一个变量设置为List1
中不在List2
中的所有数字。
matching = [s for s in list2 if any(xs in s for xs in list1)]
那么应该留在一个不匹配的变量应该是'995423'
。我已经尝试过重新编写上面的代码,但我觉得它正好在我的鼻子下面。
此外,出于性能原因使用If/Else语句会不会有好处?例如。如果匹配做到这一点,否则不匹配做到这一点......这种方式只能运行一次,而不是两次。
这是一个简单的例子,但是两者的列表可能会超过10,000行。
谢谢!书面
所以...只是扭转的条件,我猜? 'non_matching = [s for s in list1 if any any(xs in s for xs in list2)]'(< - if ** not ** any) – yedpodtrzitko
我已经试过了。这将从list1返回那些没有从list2引用的列表。我正在寻找那些list1中没有任何引用的列表1。 – sdavis891
由于事实上1中的数字序列可以位于2的数字中的任何一个事实,所以这相反更为复杂。问题:列表1中的数字是否可靠地保留六位数字? – BHustus