比较 python 列表列表中的项目,该项目两侧只有 N 个邻居



我在Python中有一个500个图像文件的列表,我试图将列表中的每个图像与左侧的N个邻居和右侧的N个相邻图像进行比较。I邻居如果右边没有N个邻居,我只想将其与未来元素进行比较,直到我到达列表的末尾,反之亦然,如果左边没有N个邻居们。

这将起作用。请注意,您不必左右比较项目(即,您不需要同时比较项目[n]和项目[n+1],也不必同时比较项目[n+1]和项目[n](。

def compare_values(values, n, compare):
for i in range(0, len(values)):
# compare left
x = i - n
if x < 0:
x = 0
if x < i:
for j in range(x, i):
compare(values[i], values[j])
# compare right
x = i + n + 1
if x > len(values):
x = len(values)
if x > i:
for j in range(i + 1, x):
compare(values[i], values[j])

以下是验证此解决方案的方法。

def print_values(item1, item2):
print("Compare {} to {}".format(item1, item2))
def main():
values = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eigth', 'ninth', 'tenth' ]
n = 3
compare_values(values, 3, print_values)
if __name__ == "__main__":
main()

最新更新