【发布时间】:2021-02-07 05:57:18
【问题描述】:
我收到了这个错误
cluster.py", line 20, in load_data
distance, num, max_dis, min_dis = load_data(distance_file)
assert(len(content) == 3)
AssertionError
cluster.py的代码
with open(distance_file, 'r', encoding = 'utf-8') as infile:
for line in infile:
content = line.strip().split(' ')
assert(len(content) == 3)
idx1, idx2, dis = int(content[0]), int(content[1]), float(content[2])
数据样例
1 1 0.000000
1 2 26.232388
1 3 44.486252
1 4 47.168839
1 5 37.593277
另一个文件的样本是
-82.3602 158.46
-91.0108 133.695
-125.815 148.936
-129.259 153.42
【问题讨论】:
-
永远不要使用
.split(' '),除非您特别只想在一个空格上分割。我想你实际上想要.split(),它在一个或多个任意空白字符上分割。此外,您可以通过在assert之前的行上添加print(content)来轻松地自行调试。 -
是的,这些列之间显然有多个空格...
-
我试过了,错误仍然 assert(len(content) == 3) AssertionError
-
你试过
print(content)吗?因为如果你这样做了,它失败的原因就会变得很明显,你应该发布那个输出。 -
另外,您的回溯与代码不匹配 - 如果您能证明它实际上与
split()无关,我可以重新打开问题。