python - 将python列表列表中的项目与该项目两侧的N个邻居进行比较
问题描述
我在 Python 中有一个包含 500 个图像文件的列表,我试图将列表中的每个图像与其左侧的 N 个邻居和右侧的 N 个邻居进行比较。我的邻居如果右边没有 N 个邻居,我只想将它与未来的元素进行比较,直到到达列表的末尾,反之亦然,如果左边没有 N 个邻居。
解决方案
这会奏效。请注意,您不必比较左右的项目(即,您不必同时比较 item[n] 和 item[n+1],以及比较 item[n+1] 和 item[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()
推荐阅读
- android - Flutter android生成的.so文件里面是什么?
- batch-file - 如何使用 bat 文件在 Macbook 终端中运行多个代码 ffmpeg?
- android - 如何让我的 Android APK 在多个设备上兼容?
- python - 如何使用python在bloomberg api中获取历史数据作为具有覆盖的数据框
- performance - 如何从不同位置衡量网站的性能?
- javascript - Javascript平滑中心滚动不起作用Onclick on a Collapse Div
- javascript - 如何在 AWS 弹性 beantalk 上运行 lite-server 应用程序?
- html - 我的 MetaTag 没有在任何地方更新,这是怎么回事?
- c++ - WxWidgets:wxQueueEvent 导致分段错误
- python - ValueError:使用带有 Chunksize 和 lines=True 的 Pandas 读取 JSON 时预期的对象或值