3 回答
TA贡献1876条经验 获得超5个赞
让我们分解一下,这个:
list1.append([int(k) for k in x.rstrip("\n").split(" ")])
相当于这个:
list1 = []
for k in x.rstrip("\n").split(" "):
list1.append(int(k))
如您所见,k显然是字符串的一部分,错误意味着它不是数字。尝试这个:
file = open("edges.txt", "r")
list1 = []
for x in file.readlines():
list1.append([int(k) for k in x.rstrip("\n").split(" ") if k.isdigit()])
但在更好的实践中:
with open("edges.txt", "r") as file:
list1 = []
for x in file.readlines():
list1.append([int(k) for k in x.rstrip("\n").split(" ") if k.isdigit()])
TA贡献1909条经验 获得超7个赞
您可以使用isdigit()字符串来验证您是否正在尝试将数字转换为 int,strip()在这种情况下,另一种方法会有所帮助,因为看起来一行包含一个数字,前后有空格。
file = open("edges.txt", "r")
list1 = []
for x in file.readlines():
list1.append([int(k) for k in x.rstrip("\n").strip().split(" ") if k.isdigit()])
添加回答
举报