python - 优雅的元组操作建议
问题描述
我正在处理由元组表示的图像和像素位置。我想检查像素是否彼此相邻并提出了一个可行的解决方案。我确信有一个比我更优雅的解决方案。这是我拥有的功能:
def test_neighbors(tup1, tup2):
neighbors = lambda a, b: [(a + 1, b), (a - 1, b), (a, b + 1), (a, b - 1)]
list1 = neighbors(tup1[0], tup1[1])
list2 = neighbors(tup2[0], tup2[1])
for item in list1:
if item in list2:
return True
return False
同样,这段代码运行良好,所以如果这不是一个正确的问题,我很抱歉。提前感谢您的建议!
解决方案
您可以只检查坐标轴上的增量
def test_neighbors(tup1, tup2):
x_delta = abs(tup1[0] - tup2[0])
y_delta = abs(tup1[1] - tup2[1])
return x_delta + y_delta == 1
推荐阅读
- google-cloud-platform - 将 csv 放入 bigquery 的数据流作业
- java - 在警报对话框中检索选定的单选按钮
- c++ - glTexImage2D 访问冲突
- python - 通过将一个行与另一个行匹配来将熊猫数据帧相乘
- javascript - 您如何使用正则表达式测试 js 对象属性是否仅为小写字母?
- python - Python for 循环不再从 0 开始
- spring-batch - 为什么我应该在 springbatch 的 FlatFileItemWriter 中使用 close 方法?
- javascript - 如何从模块中导出模式以便在另一个模块中使用它
- android - 在 DefaultConfig_Decorated 上找不到参数 [16] 的方法 minSdkersion()
- php - 数字格式在 Smarty 的 foreach 中不起作用