亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

錯誤:以 10 為底的 int() 的無效文字:“ ”

錯誤:以 10 為底的 int() 的無效文字:“ ”

蕪湖不蕪 2023-02-07 15:51:35
如何讀取帶有數字的文件并將其保存在列表中?我嘗試過這種方式,但出現錯誤:ValueError: invalid literal for int() with base 10: '' 非常感謝您的幫助,并為語法錯誤道歉。代碼:file = open("edges.txt", "r")list1 = []for x in file.readlines():    list1.append([int(k) for k in x.rstrip("\n").split(" ")])我的txt的內容。文件是:1 23 52 44 6它應該看起來像:[1, 2][3, 5][2, 4][4, 6]
查看完整描述

3 回答

?
慕運維8079593

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()])


查看完整回答
反對 回復 2023-02-07
?
jeck貓

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()])


查看完整回答
反對 回復 2023-02-07
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

使用isalnum(),因為您正在嘗試轉換為積分器



查看完整回答
反對 回復 2023-02-07
  • 3 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號