【发布时间】:2024-01-17 08:58:01
【问题描述】:
我有一个制作完整图表的功能。它接受一个整数 n 的输入。该函数旨在返回一个字典,其中键是节点(0 到 n-1),值是具有不包括节点的数字的集合。我的功能目前是这样的:
def make_complete_graph(num_nodes):
new_dict = {}
new_set = set([])
for i in range(0, num_nodes):
new_dict[i] = new_set
for key, value in new_dict.items():
for j in range(0, num_nodes):
if j != key:
value.add(j)
return new_dict
但它会返回:
{0: {0, 1, 2, 3, 4}, 1: {0, 1, 2, 3, 4}, 2: {0, 1, 2, 3, 4}, 3: {0, 1, 2, 3, 4}, 4: {0, 1, 2, 3, 4}}
当我希望它返回时
{0: {1, 2, 3, 4}, 1: {0, 2, 3, 4}, 2: {0, 1, 3, 4}, 3: {0, 1, 2, 4}, 4: {0, 1, 2, 3}}
似乎忽略了
if j != key 线。我该如何解决这个问题?
【问题讨论】:
-
您使用了与每个值相同的集合。
-
使用:
new_dict[i] = new_set.copy()
标签: python dictionary set key