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()])
添加回答
舉報