整数である可能性のある部分文字列を含む文字列が多数あります。
mystring = "123 345 456 567 678 789"
そしてそれを確認する必要があります:
a。各部分文字列は実際には整数です。mystring = "123 345 456 567 abc 789"
'abc'に達すると失敗します
b。各整数は0<=i<=10000の範囲内にあります。mystring = "123 -345 456 567 678 789"
'-345'に達すると失敗します
1つの解決策は次のとおりです。
mylist= [int(i) for i in mystring.split() if isinstance(int(i), int) and (0 <= int(i) <= 10000)]
質問は次のとおりです。
私。リスト内包表記では、iごとに、int(i)が1回または複数回評価されますか?
ii。より高速な代替方法はありますか(文字列のボリュームが大きく、各文字列に数百から数千の整数が含まれる可能性があるため)?