[英]Remove unwanted characters and convert to int in Python
以以下格式顯示時,從文件中讀取一行數字的最佳方法是:
[1, 2, 3 , -4, 5]
[10, 11, -12, 13, 14 ]
令人討厭的是,正如我所描述的,有時數字之間有多余的空間,有時沒有。 我嘗試使用CSV
解決逗號,但是事實證明括號和隨機空格也很難刪除。 理想情況下,我會將括號之間的每個數字作為一個int
附加到list
,但是當然括號會導致int()
失敗。
我已經研究過類似的解決方案,建議使用從Python和Python讀取文件中 的字符串中刪除不需要的字符 ,查找字符串並刪除字符 ,但是不幸的是,當我嘗試將所有內容組合在一起時,我總是無法做到。
使用正則表達式從字符串中刪除所有不需要的字符
import re
text_ = re.sub("[0-9]+", " ", text);
第二種方法:
str = "h3110 23 cat 444.4 rabbit 11 2 dog"
>>> [int(s) for s in str.split() if s.isdigit()]
[23, 11, 2]
使用ast.literal_eval()
是另一種選擇:
from ast import literal_eval
with open("your_file.txt") as file_obj:
for line in file_obj:
lst = literal_eval(line)
do_stuff(lst)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.