【发布时间】:2016-10-25 14:36:00
【问题描述】:
我想比较两个包含不同长度的匹配整数的列表。目标是通过根据较短列表中的缺失值从较长列表中删除项目来使它们具有相同的长度。名单:
list1 = [101, 201, 301, 402, 502, 603, 701, 802, 904, 10012, 10021, 10033, 10041, 10054, 10062, 10071, 10082, 10093, 10101]
list2 = [102, 203, 504, 601, 703, 901, 10013, 10071, 10082, 10093, 10103]
但是,两个列表的匹配值并不完全相同,在此示例中可以在 0 和 3 之间变化。
结果如下所示:
resultlist1 = [101, 201, 502, 603, 701, 904, 10012, 10073, 10082, 10093, 10101]
resultlist2 = [102, 203, 504, 601, 703, 901, 10013, 10071, 10082, 10093, 10103]
removed_items_list1 = [2, 3, 7, 10, 11, 12, 13, 14] # Index numbers of
我尝试了以下但没有成功
set(list1).intersection(list2)
只返回完全匹配
for i in xrange(len(list2)):
if abs(list1[i] - list2[i]) > 3:
del list1[i]
不删除所有不需要的值
我将如何比较这两个长度不等的列表并删除较长列表中的不匹配项(在一定变化范围内)?
【问题讨论】: