我們有大量包含可能是整數的子字符串的字符串,例如。驗證Python字符串中的整數
mystring = "123 345 456 567 678 789"
和需要驗證:
一個。每個子字符串實際上是一個整數,例如。在mystring = "123 345 456 567 abc 789"
達到'abc'時失敗
b。每個整數在範圍內0 < = i < = 10000例如。 mystring = "123 -345 456 567 678 789"
當它達到 '-345'
一種解決方案是將失敗:
mylist= [int(i) for i in mystring.split() if isinstance(int(i), int) and (0 <= int(i) <= 10000)]
的問題是:
我。在列表理解中,對於每個i,int(i)是否得到一次或多次評估?
ii。有沒有其他方法可以更快(因爲字符串的體積很大,每個字符串可能包含數百到數千的整數)?
** a。每個整數是一個整數** ?? –
給名爲'mystring'的變量分配一個列表聽起來像一個相當不好的主意? – geoffspear
a。他顯然意味着子串。 'mystring'絕對應該是該作業左側的'mylist'。 – jgritty