问题描述
{1: {8,2},2: {3},5: {9,7},7: {8},3: {8,4},4: {5},8: {9},9: {7}}
list = [(1,2),(2,3),(5,7),9),(7,8),(3,4),(4,5),(8,(9,(1,8)]
dic = {}
for x,y in list:
dic.setdefault(x,set()).add(y)
return dic
我想产生一个矩阵,如果在2个节点之间存在边,则取值为1,否则为0。这是我想要的示例:
[0,1,0]
[0,1]
[0,0]
这就是我想要的邻接字典。
预先感谢
解决方法
这是另一种解决方案
def augmentate(self,image: np.ndarray,target: Dict[str,Union[np.ndarray,torch.Tensor]]):
,
您可以这样做:
import pprint
lst = [(1,2),(2,3),(5,7),9),(7,8),(3,4),(4,5),(8,(9,(1,8)]
dic = {}
for x,y in lst:
dic.setdefault(x,set()).add(y)
size = max(dic) + 1
result = [[int(j in dic and i in dic[j]) for i in range(1,size)] for j in range(1,size)]
pprint.pprint(result) # just for pretty printing