3 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊
讓我們分解一下,這個(gè):
list1.append([int(k) for k in x.rstrip("\n").split(" ")])
相當(dāng)于這個(gè):
list1 = []
for k in x.rstrip("\n").split(" "):
list1.append(int(k))
如您所見(jiàn),k顯然是字符串的一部分,錯(cuò)誤意味著它不是數(shù)字。嘗試這個(gè):
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()])
但在更好的實(shí)踐中:
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貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用isdigit()字符串來(lái)驗(yàn)證您是否正在嘗試將數(shù)字轉(zhuǎn)換為 int,strip()在這種情況下,另一種方法會(huì)有所幫助,因?yàn)榭雌饋?lái)一行包含一個(gè)數(shù)字,前后有空格。
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()])
添加回答
舉報(bào)