我们有大量包含可能是整数的子字符串的字符串,例如。
mystring = "123 345 456 567 678 789"
并且需要验证:
一个。每个子字符串实际上是一个整数,例如。mystring = "123 345 456 567 abc 789"
到达'abc'时失败
湾。每个整数都在 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. 是否有更快的替代方法(因为字符串的数量很大,每个字符串可能包含数百到数千个整数)?