更新1: 如果相同的颜色是相邻的,则将其分组
如果组中的任何一个成员与组中的另一个成员有邻居关系,如何按函数分组?你知道吗
if x coordinate same and y coordinate difference is 1 then return 1 #same memeber
if y coordinate same and x coordinate difference is 1 then return 1 #same memeber
else return 0 #not group memeber
回溯(最近一次呼叫): 文件“”,第1行,在 TypeError:isneighborlocation()正好接受2个参数(给定1个)
from itertools import groupby
testing1 = [(1,1),(2,3),(2,4),(3,5),(3,6),(4,6)]
def isneighborlocation(lo1, lo2):
if abs(lo1[0] - lo2[0]) == 1 or lo1[1] == lo2[1]:
return 1
elif abs(lo1[1] - lo2[1]) == 1 or lo1[0] == lo2[0]:
return 1
else:
return 0
groupda = groupby(testing1, isneighborlocation)
for key, group1 in groupda:
print key
for thing in group1:
print thing
expect output 3 group
group1 [(1,1)]
group2 [(2,3),(2,4)]
group3 [(3,5),(3,6),(4,6)]
groupby
中的函数参数只接受一个参数,因此必须使用分部函数来添加“额外”参数。你知道吗https://docs.python.org/3/library/functools.html#functools.partial
当然,这意味着您必须明确地测试每个“中心”。
顺便说一句,请注意groupby上的排序要求-它似乎可能会绊倒您。你知道吗
相关问题 更多 >
编程相关推荐