[英]Reciveing the Error code: TypeError: tuple indices must be integers or slices, not dict
我在定义 function 时收到错误消息。我无法调试它。 请帮忙。
def _rescale(betweenness, n, normalized, directed=False, k=None, endpoints=False):
if normalized:
if endpoints:
if n < 2:
scale = None # no normalization
else:
# Scale factor should include endpoint nodes
scale = 1 / (n * (n - 1))
elif n <= 2:
scale = None # no normalization b=0 for all nodes
else:
scale = 1 / ((n - 1) * (n - 2))
else: # rescale by 2 for undirected graphs
if not directed:
scale = 0.5
else:
scale = None
if scale is not None:
if k is not None:
scale = scale * n / k
for v in betweenness:
betweenness[v] *= scale
return betweenness
收到的错误片段是:
scale = scale * n /
for v in betweenness:
betweenness[v] *= scale
返回介数
我认为这里的问题是您尝试使用元组中的元素访问元组中的元素。 我做了一个小例子给你看。
data = ("test", "hello", "friend")
for v in data:
print(data[v])
打印以下错误:
Traceback (most recent call last):
File "/Users/tcastron/PycharmProjects/<project>/test.py", line 4, in <module>
print(data[v])
TypeError: list indices must be integers or slices, not str
要解决您的问题,您应该使用len
function 来访问元组的每个部分:
for v in range(len(betweenness)):
betweenness[v] *= scale
但据我从你的问题中了解到,betweennes 是一个元组,你不能将新变量分配给元组。
希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.