如何修复替换中的ValueError



我用一行简单的代码将数组中字符串的一部分替换为另一个数组中对应的三个字母序列。

它们代表机场/枢纽。

for i in range(nV):
for j in range(nV):
for z in range(nV):
cidades = [cities[int(z)] for z in optimalpath[i][j].split(">")]
optimalpath[i][j] = ">".join(cidades)

它在以cidades开头的行中给了我一个错误,说如下:

Traceback (most recent call last):
File "c:Usersmarcelo.novaescodeprojectsfloydwarshallfloydwarshall_malha.py", line 146, in <module>
cidades = [cities[int(z)] for z in optimalpath[i][j].split(">")]
File "c:Usersmarcelo.novaescodeprojectsfloydwarshallfloydwarshall_malha.py", line 146, in <listcomp>
cidades = [cities[int(z)] for z in optimalpath[i][j].split(">")]
ValueError: invalid literal for int() with base 10: ''

在范围内没有'',所以我似乎找不到为什么它使用''作为'z'的值。

split有时会给你空列表元素。例子:

s = "bcb"
l = s.split("b")
print(l)

输出:

["", "c", ""]

您应该检查字符串是否为空(bool("")总是False)。例子:

s = ""
if s:
print("s is not empty")
else:
print("s is empty")

当s为""时,打印s is empty,当s为"example"时,打印s is not empty

最新更新