我正在Udacity上学习算法课程。我在课堂上遇到了一个难以解决问题的问题。相反,我进入讨论论坛寻找其他答案以寻求帮助。然而,在阅读代码时,我无法弄清楚它是如何工作的。任何帮助都非常感激
我想要了解的是这段代码:
graph = [(0, 1), (1, 5)]
def get_degree(graph):
degree = {}
for x, y in graph:
degree[x] = degree.get(x, 0) + 1
degree[y] = degree.get(y, 0) + 1
return degree
我查看了Python文档并观看了几个YouTube视频,以了解字典,元组和get方法。这就是我被困住的地方:
def get_degree(graph):
degree = {}
for x, y in graph:
print degree
degree[x] = degree.get(x, 0) + 1
print x, y
print degree.get(x, 0) + 1
print degree[x]
print degree
degree[y] = degree.get(y, 0) + 1
print degree
return ""
graph = [(0, 1), (1, 5)]
get_degree(graph)
当我调用此功能时,我的输出如下:
{}
0 1
2
1
{0: 1}
{0: 1, 1: 1}
{0: 1, 1: 1}
1 5
3
2
{0: 1, 1: 2}
{0: 1, 1: 2, 5: 1}
现在他是理解这一点的过程:
这里需要帮助* 3.这个语句打印出来让我感到困惑,因为当调用degree.get(x,0)+ 1时,我希望得到的值为1.我称之为度数的方式。 get(x,0)它应该看到第一个元组(0,1)中的第一个x是0,然后返回0并向它添加1给我一个值。
此处需要帮助* 4.现在我打印度[x]这应该是与上面相同的值,因为“度[x] =度.get(x,0)+ 1”但是此打印语句的输出是1
此处需要帮助* 5.现在我要求它打印到目前为止的词典,我希望它是{度[x]},因为此时我只提供它,但是我的输出是{0,1 }
如果有人可以帮我正确思考,我想我可以自己解决这个问题。